如何在 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
文件,每个项目都将共享这些属性。
在 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
文件,每个项目都将共享这些属性。