.NET 设置包版本,版本自动递增

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

我正在尝试从我的 C# 类库项目创建 NuGet 包。它使用

AssemblyInfo.cs
:

中设置的自动版本控制
[assembly: AssemblyVersion("0.5.*")] 

但是包信息是从

Version
文件的
.csproj
属性中获取的。

因此,我必须在两个文件中更新版本两次,或者从

AssemblyInfo.cs
中删除版本并停止使用自动版本控制(看起来
.csproj
中不支持它)。

有没有办法设置包版本(在我的示例中为

0.5
)并保持文件的自动版本控制,同时仅更新一个文件中的版本?

c# .net version nuget-package
1个回答
0
投票

这个答案表明,可以通过仅

.csproj
的方法实现自动版本增量。
只需包括以下一项对我来说就足够了。

<Deterministic>false</Deterministic>

为了避免多次调整版本号的固定部分 - 这里:

0.5
- 可以设置一个变量并从其他版本标签中引用它。

下面的

.csproj
文件片段显示了一个变量
_versionNumber
, 用于
AssemblyVersion
,添加了
*
通配符,并按原样用于
Version
等。

<Project>
  <PropertyGroup>
    <Deterministic>false</Deterministic>

    <_versionNumber>0.5</_versionNumber>
    
    <AssemblyVersion>$(_versionNumber).*</AssemblyVersion>
    <Version>$(_versionNumber)</Version>
    
    <-- Any other version attributes of interest-->
    <FileVersion>$(_versionNumber)</FileVersion>
    <InformationalVersion>$(_versionNumber)</InformationalVersion>
    
    <-- More tags -->
  </PropertyGroup>  
</Project>
© www.soinside.com 2019 - 2024. All rights reserved.