Dot-Net-Core

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

  • May 21, 2019

當我希望解決方案中的多個項目共享相同的程序集資訊(主要是 AssemblyVersion)時,我曾經使用此處解釋的技術:https ://blogs.msdn.microsoft.com/jjameson/2009/04/03/shared-裝配資訊在視覺工作室項目/

現在我們正在研究 .net core 和 asp.net core 項目的解決方案,我們希望所有項目共享相同的 AssemblyVersion,但現在每個項目的版本都儲存在它的 .csproj 文件中(我們使用的是 vs2017)

我嘗試使用生成資訊,<GenerateAssemblyProductAttribute>true</GenerateAssemblyProductAttribute>但新文件是在建構時創建的

有沒有辦法像“舊的” SharedAssemblyInfo.cs 那樣集中這些資訊?

Directory.Build.props您可以在要為其設置預設屬性的所有 .csproj 文件上方添加一個文件。這個.props文件會自動導入.csproj到它下面的所有文件中。您可以在其中設置常用屬性:

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

這些 MSBuild 屬性將適用於.csproj它下面的所有文件。因此,當生成程序集屬性時,這些值將在所有項目中使用。

這是所有 MSBuild 屬性到程序集屬性的映射

您可以創建 .props 文件(例如 common.props)並將通用項目配置放在此文件中:

common.props:

<Project>
 <PropertyGroup>
   <AspNetCoreVersion>2.0.0</AspNetCoreVersion>
 </PropertyGroup>
</Project>

項目1.csproj:

<Project Sdk="Microsoft.NET.Sdk.Web">

 <Import Project=".\common.props" />

 ...

</Project>

項目2.csproj:

<Project Sdk="Microsoft.NET.Sdk.Web">

 <Import Project=".\common.props" />

 ...

</Project>

您可以在此連結上找到更多資訊

引用自:https://stackoverflow.com/questions/42790536