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

问题描述 投票:0回答:2

在 .NET Framework 类库中,我可以右键单击项目 > 属性并单击程序集版本,更新版本,一旦 dll 可用,它就是构建的一部分。然后我在构建 NuGet 包时使用了这个版本。

在 Visual Studio 2022 中,我有一个 .NET 6 类库,但是当我右键单击时,我没有看到相同的程序集版本选项,尽管我在包下看到它,但我无法判断它是否与程序集版本相同,或者包是否是仅适用于 NuGet。

增加程序集版本的正确位置是什么,以便它发生在类库和我构建的任何 NuGet 包上?

c# visual-studio nuget nuget-package
2个回答
0
投票

您可以将文件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>

注意:这将为解决方案中包含的所有项目的构建输出设置相同的程序集版本。

查看文档以获取有关用法的更多信息。


0
投票

从 .NET Framework 迁移 .NET SDK 项目文档的 MSBuild 参考部分:

.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 本身的属性。

© www.soinside.com 2019 - 2024. All rights reserved.