我正在使用ASP.NET Core开发REST Api。我曾经使用包含常见属性(如AssemblyCompany,AssemblyCopyright,AssemblyTrademark和AssemblyVersion)的共享文件在我的解决方案中共享汇编信息。这样,解决方案中的所有项目都将使用相同的程序集信息属性进行编译。
在ASP.NET Core中,这些属性现在在project.json文件中定义。有没有办法以类似的方式分享这些属性?
答案 0 :(得分:1)
除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。
如果其相应的字段在 project.json 中保留为空,则不会生成其他属性,例如AssemblyCopyright。
答案 1 :(得分:1)
如果其他人到这里来,并正在寻找一种适用于.Net Core> 2.1和新的.csproj项目文件的解决方案:
经过一番研究,我发现它可以使用父目录中的Directory.Build.props
文件工作。您可以找到示例代码和更多信息in this repository。