使解决方案中的每个csproj成为不同的C#版本

Sha*_*tin 5 c# msbuild

我有一个包含五个C#控制台应用程序项目的解决方案.我希望每个项目都针对不同版本的C#.

MyLearningSolution.sln
    CSharp01.csproj
    CSharp02.csproj
    CSharp03.csproj
    CSharp04.csproj
    CSharp05.csproj
Run Code Online (Sandbox Code Playgroud)

有没有办法通过Visual Studio或编辑每个csproj文件来做到这一点?

我尝试了以下搜索:

  • csproj目标特定的C#版本,这是关于针对特定框架版本的

  • csproj选择c#版本,不回答问题

Mar*_*ell 11

这可以通过查看<LangVersion>csproj文件的元素来完成.可能的值:

<LangVersion>default</LangVersion>
<LangVersion>ISO-1</LangVersion>
<LangVersion>ISO-2</LangVersion>
<LangVersion>3</LangVersion>
<LangVersion>4</LangVersion>
<LangVersion>5</LangVersion>
Run Code Online (Sandbox Code Playgroud)

要通过UI执行此操作,请转到Project Properties => Build => Advanced ... => Language Version

  • 我认为它值得指出LangVersion并且实际上使用较旧的编译器版本略有不同.[Eric Lippert在这里解释.](http://ericlippert.com/2013/04/04/what-does-the-langversion-switch-do/) (10认同)

Hab*_*bib 7

右键单击Project,转到Properites,Build然后单击Advanced..按钮,在那里您可以指定语言版本.

在此输入图像描述