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

Hoo*_*ini 9 c# visual-studio visual-studio-2017

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

有没有一种方法可以一次性更改所有项目的版本?我知道我可以从项目属性更改语言版本,但我不想重复此操作 20 次。

在此输入图像描述

Hoo*_*ini 21

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

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

<Project>
  <PropertyGroup>
    <LangVersion>7.3</LangVersion>
    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
  </PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

注1:

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

笔记2:

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

<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
Run Code Online (Sandbox Code Playgroud)

这里,15.0表示您的MSBuild版本,如果您需要升级MSBuild版本,请参阅此文档。


mez*_*tou 12

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

<Project>
  <PropertyGroup>
    <LangVersion>latest</LangVersion>
    <!--<LangVersion>preview</LangVersion>-->
    <!--<LangVersion>7.3</LangVersion>-->
  </PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

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

  • 不幸的是,智能感知并不能很好地与“Directory.Build.props”方法配合使用。它在我的解决方案文件中显示了很多错误。希望我能找到解决方案。 (5认同)