我正在使用 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 中的相应字段留空时,将不会生成这些属性。