自动递增 NuGet 包版本

Jon*_*len 6 nuget c#-8.0 visual-studio-2019

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

Lan*_*SFT 4

如果您通过构建服务器构建和发布项目,并通过 Git 管理版本,则可以尝试 MSBuild GitVersion任务。对于类似的问题,请参见这里

\n

但是,如果您只想在本地 Visual\xc2\xa0Studio 中进行干净的构建和发布而不使用 Git,那么恐怕目前没有任何 Visual\xc2\xa0Studio 选项或MSBuild 任务来支持此行为。您可以前往开发者社区建议该功能,因为这是一个有意义的想法,但目前尚不可用。

\n

另外,根据马丁 和亚历山大的提示的提示,您可以将此脚本添加到 xx.csproj 中:

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

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

\n
\n

如果针对多个框架,请参阅在 TFS 中将具有多个目标框架的项目构建为 NuGet 包

\n

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

\n
<Deterministic>false</Deterministic>\n<AssemblyVersion>3.0.*</AssemblyVersion>\n
Run Code Online (Sandbox Code Playgroud)\n