如何在ASP.NET Core中共享汇编信息?

Jan*_*ink 7 assemblyinfo .net-core asp.net-core

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

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

Mar*_*arc 7

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

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


nat*_*ter 0

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

例子:

{
  "buildOptions": {
    "compile": "../shared/AssemblyInfo.cs"
  }
}
Run Code Online (Sandbox Code Playgroud)

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

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

其他属性(例如 AssemblyCopyright)如果在project.json中相应字段留空,则不会生成。