Luk*_*ett 1 nuget nuget-package .net-core dotnet-cli
我喜欢在我的 CICD 管道中为 NuGet 包使用内部版本号或其他一些计算出的版本号。本质上,我喜欢开发人员控制主要和次要版本号,但会自动增加构建。
有了nuget.exe我可以使用-Version开关来覆盖最终包中的版本。但是,对于 .NET Core 2.0 库项目,这失败了,我必须使用dotnet pack,请参阅:
https://github.com/NuGet/Home/issues/4491
这只是一个--version-prefixCLI 参数,dotnet pack所以我如何完全覆盖版本?
您可以使用几乎没有记录的/p选项:
dotnet pack /p:PackageVersion=2.1.0
Run Code Online (Sandbox Code Playgroud)
看
https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-pack?tabs=netcore2x
显然,您可以在 CICD 工具中随意组合它,例如 VSTS:
/p:Version=$(Build.BuildNumber)
Run Code Online (Sandbox Code Playgroud)
注意当“pack”是动词时,VSTS 在 .NET Core 构建任务中有几个自动版本控制选项(在 2017 年 10 月 5 日预览)。
我在 VSTS 上的最终解决方案是使用 .NET Coredotnet pack任务Use the build number和以下设置作为构建定义选项中设置的构建号格式:
2.0.$(Build.BuildId)
Run Code Online (Sandbox Code Playgroud)
工程师将需要在进行大的或重大的更改时更改版本。我更喜欢代码中的这个;有一天我会写一些脚本来将数字从.csproj和提升到构建系统中。
| 归档时间: |
|
| 查看次数: |
2162 次 |
| 最近记录: |