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



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

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

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

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

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

例:

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

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

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

其他属性(如 AssemblyCopyright)在 project.json 中的相应字段留空时,将不会生成这些属性。

最新更新