如何在一个地方为我的解决方案中的所有项目更改 C# 语言版本?

How to change C# Language Version for all of the projects in my solution in one place?

我有一个包含 20 个项目的解决方案,我想将所有项目的 C# 版本更改为 C# 7.3

有没有办法一次性更改所有项目的版本?我知道我可以从 Project 的 Properties 更改 Language Version,但我不想重复这个 20 次。

要一次为所有项目设置一个版本,您可以在存储库的根目录下创建一个名为 Directory.Build.props(Linux 区分大小写)的文件。此文件包含项目的公共属性列表:

<Project>
  <PropertyGroup>
    <LangVersion>latest</LangVersion>
    <!--<LangVersion>preview</LangVersion>-->
    <!--<LangVersion>7.3</LangVersion>-->
  </PropertyGroup>
</Project>

https://www.meziantou.net/4-ways-to-enable-the-latest-csharp-features.htm#method-4-using-a-pro

接受的答案很好,我只是添加一些细节。

我在存储库的根目录下创建了 Directory.Build.props 文件,并将其作为 解决方案项 添加到解决方案中。这是文件的内容:

<Project>
  <PropertyGroup>
    <LangVersion>7.3</LangVersion>
    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
  </PropertyGroup>
</Project>

注一:

如果您修改这些设置,您需要重新启动Visual Studio以使更改生效。

注2:

您需要 MSBuild version 15 或更高才能使用 Directory.Build.props。要检查 MSBuild 版本,请在文本编辑器中打开项目文件并查找以下内容:

<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

此处,15.0表示您的MSBuild版本,如果您需要升级MSBuild版本,请参阅this document