2017-10-05 171 views
0

我喜欢在我的CICD管道中使用内部版本号或其他一些计算版本号用于NuGet包。本质上,我喜欢开发人员来控制主版本号和次版本号,但是会自动增加版本。从CLI覆盖NuGet包版本

随着nuget.exe我可以使用-Version开关覆盖最终包中的版本。然而与.NET 2.0的核心库项目失败了,我不得不使用dotnet pack,请参阅:让我怎么完全重写的版本

https://github.com/NuGet/Home/issues/4491

的是仅适用于dotnet pack一个--version-prefix CLI的说法?

回答

3

您可以使用几乎没有文件证明/p选项:

dotnet pack /p:PackageVersion=2.1.0 

https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-pack?tabs=netcore2x

很明显,你可以组合这是你在CICD工具一样,像VSTS:

/p:Version=$(Build.BuildNumber) 

注意当“pack”是动词时(在截至2017年10月5日的预览中),VSTS在.NET Core构建任务中有几个自动版本控制选项。

我在VSTS的最终解决方案是使用.NET的核心dotnet pack任务与Use the build number设置,并在选项为构建定义设置构建数字格式如下:

2.0.$(Build.BuildId) 

工程师需要在进行大规模或重大更改时更改版本。我更喜欢这个代码;有一天,我会写一些脚本来将数字从.csproj提升到构建系统。

+4

btw你也可以定义'/ p:BuildNumber = $(Build.BuildId)'然后在csproj中有一个' 0'和' 2.0。$(BuildNumber)'所以你可以在csproj中设置一个版本的一部分 –

+0

@MartinUllrich这是一个很棒的提示,谢谢! –