Closed
Description
Problem
Currently ClassicBuilder
uses a combination of BuildManager.DefaultBuildManager
and BuildBenchmark.bat
for project building. There are a lot of troubles with this approach:
- It is hard to detect correct version of MSBuild
- On Linux and MacOS, it is also hard to detect correct version of XBuild
- It is impossible to move a benchmark runner to another machine without installed MSBuild/XBuild.
Suggestion
There is a cool NuGet package Microsoft.Net.Compilers which contains full Roslyn compiler (csc.exe
+ additional dll files). Yep, it is a dependency, but It is not too terrible. Benefits of the suggested approach:
- We shouldn't detect MSBuild/XBuild
- We can run benchmark without installed MSBuild/XBuild
- We even shouldn't generate csproj
- We always have good stable compiler, we don't depend on user environment
- It is a cross-platform way.
@adamsitnik, @mattwarren, what do you think?