当我希望解决方案中的多个项目共享相同的程序集信息(主要是AssemblyVersion)时,我曾经使用过这里解释的tecnique:https://blogs.msdn.microsoft.com/jjameson/2009/04/03/shared-assembly-info-in-visual-studio-projects/
现在我们正在研究.net核心和asp.net核心项目的解决方案,我们希望所有项目共享相同的AssemblyVersion,但现在每个项目的版本都存储在它的.csproj文件中(我们使用的是vs2017) )
我尝试使用<GenerateAssemblyProductAttribute>true</GenerateAssemblyProductAttribute>
生成信息,但新文件是在构建时创建的
有没有办法像“旧”SharedAssemblyInfo.cs那样集中这些信息?
答案 0 :(得分:12)
您可以在要作为默认属性的所有.csproj文件上添加Directory.Build.props
文件。此.props
文件将自动导入其下方的所有.csproj
文件中。您可以在其中设置常用属性:
<Project>
<PropertyGroup>
<Company>Erhardt Enterprises</Company>
<Copyright>Erhardt Enterprises ©</Copyright>
</PropertyGroup>
</Project>
这些MSBuild属性将应用于其下的所有.csproj
文件。因此,在生成程序集属性时,将在所有项目中使用这些值。
答案 1 :(得分:0)
您可以创建.props文件(例如common.props),并将通用项目配置放入此文件中:
common.props:
<Project>
<PropertyGroup>
<AspNetCoreVersion>2.0.0</AspNetCoreVersion>
</PropertyGroup>
</Project>
project1.csproj:
<Project Sdk="Microsoft.NET.Sdk.Web">
<Import Project=".\common.props" />
...
</Project>
project2.csproj:
<Project Sdk="Microsoft.NET.Sdk.Web">
<Import Project=".\common.props" />
...
</Project>
您可以找到有关此link
的更多信息