Skip to content

Migrate from MSBuild to Roslyn #149

Closed
@AndreyAkinshin

Description

@AndreyAkinshin

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?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions