在。net框架类库中,我可以右键单击项目>属性并单击"程序集版本",更新版本,一旦dll可用,该版本就是构建的一部分。然后我在构建NuGet包时使用了这个版本。
在Visual Studio 2022中,我有一个。net 6类库,但当我右键单击时,我没有看到相同的汇编版本选项,虽然我在包下看到它,但我不能告诉这是否与汇编版本相同,或者如果包只是用于NuGet。
增加汇编版本的正确位置是什么,因此它发生在类库和我构建的任何NuGet包上?
来自MSBuild参考资料中。net SDK项目文档的。net Framework迁移部分:
。. NET Framework项目模板创建设置了这些程序集信息属性的代码文件。该文件通常位于.PropertiesAssemblyInfo.cs或. PropertiesAssemblyInfo.vb。sdk风格的项目根据项目设置为您生成此文件。你不能两者兼得当将代码移植到。net 5(或。net Core 3.1)或更高版本时,请执行以下操作之一:
- 通过在项目文件中将
GenerateAssemblyInfo
设置为false
来禁用生成包含程序集信息属性的临时代码文件。这使您可以保留AssemblyInfo文件。- 将
AssemblyInfo
文件中的设置迁移到工程文件中,然后删除AssemblyInfo
文件
因此,如果您愿意,可以通过在.csproj中添加以下内容并在解决方案中添加相应的文件来恢复此文件:
<PropertyGroup>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>
或者只是管理.csproj本身的属性。
如果您在Package
中编辑数据,您将看到它将管理适当的设置(尽管命名不理想,是的)。
您可以添加一个文件Directory.Build。道具的解决方案,与以下内容:
<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>
注意:这将为解决方案中包含的所有项目的构建输出设置相同的程序集版本。
查看文档以获取有关用法的更多信息。