如何在 VS 2019 格式的项目之间共享程序集信息?

How can you share Assembly Info between VS 2019-formatted projects?

在 VS 2017 中,或者更准确地说,是 VS 2017 中使用的旧项目格式,每个项目都有一个 'Properties' 文件夹和一个 AssemblyInfo.cs 文件,其中包含项目版本、版权等内容.

如果你想在几个项目之间共享一些信息,比如特定解决方案中的所有项目,你创建了一个 AssemblyInfo_Shared.cs 文件,将共享属性移入其中,将它们从原始 AssemblyInfo.cs 文件,然后你会 'link' 共享版本到每个单独的项目中。

现在,当您构建时,AssemblyInfo_Shared.cs 中的信息将在所有项目之间共享,而项目特定的值将保留在原始 AssemblyInfo.cs 文件中。

但是,在新的项目格式中,这些值都嵌入到项目文件中,现在是一个简单的 XML 文件。您现在如何在项目之间共享设置?

项目文件中的属性(甚至项目)由 MSBuild 处理,并且可以轻松重构为项目之间共享的 .props.targets 文件。

使用新的项目文件格式,MSBuild 将自动在项目开头导入名为 Directory.Build.props 的文件,在项目结尾导入名为 Directory.Build.targets 的文件 - 这包括搜索文件夹树直到这些被发现。有了这个,就可以很容易地在您的解决方案中的所有项目之间共享属性:只需在解决方案文件夹中使用您的版本属性创建一个 Directory.Build.props 文件,每个项目都将共享这些属性。