我喜欢在我的CICD管道中为NuGet包使用内部版本号或其他一些计算版本号。本质上,我喜欢开发人员控制主要和次要版本号,但会自动增加构建。
使用nuget.exe
我可以使用-Version
开关覆盖最终包中的版本。但是,对于.NET Core 2.0库项目,这会失败,我必须使用dotnet pack
,请参阅:
https://github.com/NuGet/Home/issues/4491
--version-prefix
只是dotnet pack
CLI参数,那么如何完全覆盖版本?
答案 0 :(得分:4)
您可以使用几乎没有记录的/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"时,VSTS有一些在.NET Core构建任务中进行自动版本控制的选项。是动词(预览截至2017年10月5日)。
我在VSTS上的最终解决方案是使用带有dotnet pack
设置的.NET Core Use the build number
任务以及以下内容作为构建定义选项中设置的内部版本号格式:
2.0.$(Build.BuildId)
工程师需要在进行大量或重大更改时更改版本。我在代码中更喜欢这个;有一天,我会编写一些脚本来将.csproj
中的数字提升到构建系统中。