如何在 ASP.NET Core 中共享程序集信息?

How to share assembly info in ASP.NET Core?

我正在使用 ASP.NET Core 开发 REST Api。我曾经使用包含公共属性(如 AssemblyCompany、AssemblyCopyright、AssemblyTrademark 和 AssemblyVersion)的共享文件在我的解决方案中共享程序集信息。这样,我在解决方案中的所有项目都将使用相同的程序集信息属性进行编译。

在 ASP.NET 核心中,这些属性现在定义在 project.json 文件中。有没有办法以类似的方式共享这些属性?

除了AssemblyVersion,您提到的程序集属性仍然可以在共享文件中定义。此文件可以添加到 "buildOptions".

下的项目中

示例:

{
  "buildOptions": {
    "compile": "../shared/AssemblyInfo.cs"
  }
}

有关详细信息,请参阅 https://docs.microsoft.com/en-us/dotnet/articles/core/tools/project-json#buildoptions

AssemblyVersion 无法共享,因为它总是从 project.json 中的 "version" 值生成。 "version" 如果未指定,则默认为 1.0.0。

其他属性,如AssemblyCopyright,如果在project.json.

中对应的字段为空,则不会生成

如果其他人路过这里并正在寻找适用于 .Net Core > 2.1 和新的 .csproj 项目文件的解决方案:

经过一些研究,我使用父目录中的 Directory.Build.props 文件让它工作。您可以找到示例代码和更多信息 in this repository.