在使用Team City和Octopus Deploy时设置dotnet核心项目的版本?
问题描述:
我有一个dotnet核心项目,我想建立和部署。在使用Team City和Octopus Deploy时设置dotnet核心项目的版本?
目前我在TC中有三个步骤;
- DOTNET恢复
- DOTNET包
- 章鱼部署:推
在OD我希望用它冲压成OD接收内置的存储库中的包的版本。
它几乎可行!
但是!
TC始终构建为像Ajf.IdentityServer.1.0.0-54.nupkg(步骤2,dotnet pack)这样的文件。
第2步,dotnet包,有一个选项 - 版本后缀 - 我正在使用%build.counter%。
我想要版本形成为1.0.0.54,而不是1.0.0-54。
显然,OD没有问题(我可以部署这些格式不正确的版本),但它只是感觉...错了?
我该如何用TC计算出的'正确'版本来标记我的版本?
谢谢! ;)
答
你可以引入一个额外的属性在MSBuild中使用。
如果修改的csproj设置的版本是这样介绍的自定义BuildNumber
属性默认为0
:
<PropertyGroup>
<BuildNumber Condition="'$(BuildNumber)' == ''">0</BuildNumber>
<VersionPrefix>1.2.3.$(BuildNumber)</VersionPrefix>
</PropertyGroup>
那么你可以传递BuildNumber
作为附加参数所有相关dotnet
调用:
dotnet pack -c Release /p:BuildNumber=%build.counter%
它只是工作!我的英雄!谢谢! –