自动增加 NuGet 包版本

Auto-increment NuGet package version

在 C#/.NET Standard 2.1 中使用“生成时生成 NuGetPackage”时,是否有自动增加 NuGet 包版本的方法?

如果您通过构建服务器构建和发布项目,并通过 Git 管理版本,您可以尝试 MSBuild GitVersion task. For a similar issue, see .

但是,如果您只想在不使用 Git 的情况下在本地 Visual Studio 中进行干净的构建和发布,那么恐怕目前没有任何 Visual Studio 选项或 MSBuild task to support this behavior. You can go to the Developer Community 可以建议功能,因为它是一个有意义的想法,但目前不可用。

此外,根据提示 and Alexandre,您可以将此脚本添加到 xx.csproj:

  <PropertyGroup>
    <GenerateNuspecDependsOn>$(GenerateNuspecDependsOn);SetPackageVersion</GenerateNuspecDependsOn>
  </PropertyGroup>

  <Target Name="SetPackageVersion" DependsOnTargets="Build">
    <PropertyGroup>
      <!-- <PackageVersion>$([System.DateTime]::Now.ToString(&quot;yyyy.MM.dd.HHmmss&quot;))</PackageVersion> -->
      <!-- You can customize the format and the rule about how version increases here. -->
      <PackageVersion>$([System.DateTime]::Now.ToString(&quot;1.MM.dd&quot;))</PackageVersion>
    </PropertyGroup>
  </Target>

那么今天发布包的时候,版本是1.10.4。明天 1.10.5,如果你真的不需要在一天内发布一个包的不同版本,它就可以工作。您也可以自定义脚本来定义您的版本增加规则。


如果针对多个框架,请参阅

这在将程序集版本设置为通配符时有效。

<Deterministic>false</Deterministic>
<AssemblyVersion>3.0.*</AssemblyVersion>

toDate 到 Visual Studio 2019 和 .NET 5.0,LoLance 关于在 .csproj 文件中编写增量脚本的建议仍然有效,我们现在可以直接在包定义的PropertyGroup中对多个字段使用shell命令,如下图所示: