我正在使用dotnet核心.这是针对配置项过程,而不是本地构建.我希望允许开发人员为诸如title等之类的东西创建AssemblyInfo.cs文件,但我希望自己的构建过程能够控制程序集的版本.
当前,我正在使用“ dotnet build … /p:Version=1.2.3.4”命令,但是一旦存在AssemblyInfo.cs文件,该版本号就会被取代,即使AssemblyInfo.cs未指定任何版本属性.
我可以从CLI控制版本的唯一方法是删除AssemblyInfo.cs文件.有什么方法可以执行此操作而无需在构建之前手动更改AssemblyInfo.cs文件?
解决方法:
该工具会生成一个包含程序集属性的自定义.cs文件.编译器仅允许将每个属性定义为一个.通常,您会完全关闭自动装配信息的生成,但是使用SDK,您可以分别控制每个属性的生成.
因此,如果您编辑csproj文件以包含这些属性组(在< Project>元素内部):
<PropertyGroup>
<!-- true is the default here -->
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
<GenerateAssemblyCopyrightAttribute>false</GenerateAssemblyCopyrightAttribute>
<GenerateAssemblyDescriptionAttribute>false</GenerateAssemblyDescriptionAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
</PropertyGroup>
这些属性不会在编译过程中自动生成,您可以在自定义属性中定义它们.完整列表为available in the dotnet/sdk repo.