如何告诉 Roslyn C# 编译器使用特定版本的 .NET?

Aar*_*oin 5 .net csc roslyn

我发现csc.exeRoslyn 附带的二进制文件可以采用-langversion:<string>命令行参数来设置我想要编译的 C# 版本。但是如何选择我希望编译器使用的 .NET 版本?

编译过程适用于我使用一些 .NET SQL Server 功能的简单测试程序,所以我知道编译器以某种方式在我的计算机上使用了 .NET 版本。我的C:\Windows\Microsoft.NET\Framework目录中有多个 .NET 版本,我假设编译器正在使用其中之一。我想明确设置编译器在编译我的程序时使用哪个版本的 .NET。

注意:如果您能详细说明编译器如何首先选择一个版本,那也将不胜感激。

lep*_*pie 0

我只是从命令行使用它(即下面的2.0)

msbuild <project-or-solution> /p:TargetFrameworkVersion=v2.0
Run Code Online (Sandbox Code Playgroud)

  • Roslyn 不包含“msbuild”,据我了解,“msbuild”无论如何都只是使用“csc.exe”。由于 Roslyn 中包含的“csc.exe”二进制文件显然能够使用自己的 .NET 版本进行编译,因此必须有一种方法可以直接告诉“csc.exe”我想使用哪个 .NET 版本。 (2认同)