Visual Studio VS 2022 .NET 6中缺少程序集版本选项[重复]

juzqafwq  于 2023-04-07  发布在  .NET
关注(0)|答案(2)|浏览(538)

此问题已在此处有答案

How to specify the assembly version for a .NET Core project?(5个答案)
昨天关门了。
在.NET Framework类库中,我可以右键单击项目〉属性,然后单击汇编版本,更新版本,一旦dll可用,这就是构建的一部分。然后我在构建NuGet包时使用了这个版本。
在Visual Studio 2022中,我有一个.NET 6类库,但当我右键单击时,我没有看到相同的Assembly Version选项,尽管我在Package下看到它,但我无法判断这是否与Assembly Version相同,或者Package是否仅用于NuGet。
增加汇编版本的正确位置是什么,以便它发生在类库和我构建的任何NuGet包上?

3phpmpom

3phpmpom1#

来自.NET SDK项目文档的MSBuild参考的“从.NET Framework迁移”部分:
.NET Framework项目模板创建一个代码文件,其中设置了这些程序集信息属性。该文件通常位于 .\Properties\AssemblyInfo.cs.\Properties\AssemblyInfo.vb。SDK样式的项目根据项目设置为您生成此文件。**您不能同时拥有这两个文件。**将代码移植到.NET 5(或.NET Core 3.1)或更高版本时,请执行以下操作之一:

  • 通过在项目文件中将GenerateAssemblyInfo设置为false,禁用生成包含程序集信息属性的临时代码文件。这使您可以保留 AssemblyInfo 文件。
  • AssemblyInfo文件中的设置移植到项目文件,然后删除AssemblyInfo文件。

因此,如果需要,您可以通过将以下内容添加到.csproj并将相应的文件添加到解决方案中来恢复此文件:

<PropertyGroup>
  <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>

或者只是管理.csproj本身中的属性。
如果您在Package中编辑数据,您将看到它将管理适当的设置(尽管命名并不理想,是的)。

w6mmgewl

w6mmgewl2#

您可以向解决方案中添加一个文件 * Directory.Build.props *,其内容如下:

<Project>
  <PropertyGroup>
    <BuildCounter>0</BuildCounter>
    <MajorMinorVersion>1</MajorMinorVersion>
    <Version>$(MajorMinorVersion).$(BuildCounter)</Version>
    <FileVersion>$(MajorMinorVersion).$(BuildCounter)</FileVersion>
    <Product>Product name</Product>
    <Company>Company name</Company>
  </PropertyGroup>
</Project>
  • 注意 *:这将为解决方案中包含的所有项目的生成输出设置相同的程序集版本。

Check the documentation以了解有关用法的更多信息。

相关问题