【问题标题】:SharedAssemblyInfo equivalent in .net core projects?.net 核心项目中的 SharedAssemblyInfo 等效项?
【发布时间】:2017-08-05 01:22:21
【问题描述】:

当我希望解决方案中的多个项目共享相同的程序集信息(主要是 AssemblyVersion)时,我曾经使用此处解释的技术:https://blogs.msdn.microsoft.com/jjameson/2009/04/03/shared-assembly-info-in-visual-studio-projects/

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

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

有没有办法像“旧”的 SharedAssemblyInfo.cs 那样集中这些信息?

【问题讨论】:

  • 不是。我已经知道 .net 核心程序集信息写在哪里,我在问如何为多个项目集中这些信息
  • 我必须承认我没有尝试过,但是你读过第一个answer吗?它展示了如何禁用来自 csproj 的信息的使用,因此应该允许您继续使用现有方法(使用 SharedAssemblyInfo.cs 文件)。另请参阅Hans' Answer,基本上就是这样。

标签: .net-core visual-studio-2017


【解决方案1】:

您可以在要为其设置默认属性的所有 .csproj 文件上方添加一个 Directory.Build.props 文件。这个.props 文件将自动导入到它下面的所有.csproj 文件中。您可以在其中设置常用属性:

<Project>
  <PropertyGroup>
    <Company>Erhardt Enterprises</Company>
    <Copyright>Erhardt Enterprises ©</Copyright>
  </PropertyGroup>
</Project>

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

这里是mapping of all MSBuild properties to assembly attributes

【讨论】:

  • 如果您想选择哪些项目包含常见的“.props”文件:将其命名为不同的名称,例如“CommonAssemblyInfo.props”,然后在每个项目的顶部添加 &lt;Import Project="path/to/CommonAssemblyInfo.props" /&gt;.csproj你想分享属性。
  • @EricErhardt 如果您更喜欢黑名单方法,您还可以将要排除的项目的 ImportDirectoryBuildTargets 属性设置为 false。
  • 那么 [assembly: AssemblyInformationalVersion("a.b.c.d")] - 看起来在 net core 中没有此属性的属性
  • @Macko - 查看&lt;InformationalVersion&gt; 属性。它映射到System.Reflection.AssemblyInformationalVersionAttribute。见github.com/dotnet/sdk/blob/…
【解决方案2】:

您可以创建.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找到更多信息

【讨论】:

    猜你喜欢
    • 2017-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多