.net核心项目中的SharedAssemblyInfo等效?

Doc*_*Doc 8 .net-core visual-studio-2017

当我希望解决方案中的多个项目共享相同的程序集信息(主要是AssemblyVersion)时,我曾经使用过这里解释的tecnique:https://blogs.msdn.microsoft.com/jjameson/2009/04/03/shared- 装配信息,在视觉工作室项目/

现在我们正在研究.net核心和asp.net核心项目的解决方案,我们希望所有项目共享相同的AssemblyVersion,但现在每个项目的版本都存储在它的.csproj文件中(我们使用的是vs2017)

我尝试生成信息,<GenerateAssemblyProductAttribute>true</GenerateAssemblyProductAttribute>但新文件是在构建时创建的

有没有办法集中这些信息,如"旧"SharedAssemblyInfo.cs方式?

Eri*_*rdt 15

您可以在Directory.Build.props要作为默认属性的所有.csproj文件上方添加文件.该.props文件将自动导入其下的所有.csproj文件中.您可以在其中设置公共属性:

<Project>
  <PropertyGroup>
    <Company>Erhardt Enterprises</Company>
    <Copyright>Erhardt Enterprises ©</Copyright>
  </PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

这些MSBuild属性将应用于其下的所有.csproj文件.因此,在生成程序集属性时,将在所有项目中使用这些值.

以下是所有MSBuild属性到程序集属性映射.

  • 如果你想选择哪些项目包含常见的".props"文件:将它命名为"CommonAssemblyInfo.props",然后添加一个`<Import Project ="path/to/CommonAssemblyInfo.props"/>`你要共享属性的每个`.csproj`顶部的行. (3认同)