使用 Team City 和 Octopus Deploy 时设置 dotnet 核心项目的版本?
Setting version of dotnet core project when using Team City and Octopus Deploy?
我有一个要构建和部署的 dotnet 核心项目。
目前我在TC中有三个步骤;
- dotnet 恢复
- 网络包
- 章鱼部署:推送
在 OD 中,我希望使用 OD 在内置存储库中收到的包中标记的版本。
差不多可以了!
但是!
TC 总是生成类似 Ajf.IdentityServer.1.0.0-54.nupkg 的文件(第 2 步,dotnet pack)。
第 2 步,dotnet pack,有一个选项 - 版本后缀 - 我目前使用的是 %build.counter%.
我希望版本为 1.0.0.54,而不是 1.0.0-54。
OD貌似没问题(我可以部署那些畸形的版本),但就是感觉……不对?
如何使用 TC 计算的 'right' 版本标记我的版本?
谢谢! ;)
您可以引入额外的 属性 以在 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%
到目前为止,最简单的方法是
/p:PackageVersion=1.2.%build.number%
这样做的好处是您不必以任何方式修改您的 csproj 文件。
我有一个要构建和部署的 dotnet 核心项目。
目前我在TC中有三个步骤;
- dotnet 恢复
- 网络包
- 章鱼部署:推送
在 OD 中,我希望使用 OD 在内置存储库中收到的包中标记的版本。
差不多可以了!
但是!
TC 总是生成类似 Ajf.IdentityServer.1.0.0-54.nupkg 的文件(第 2 步,dotnet pack)。
第 2 步,dotnet pack,有一个选项 - 版本后缀 - 我目前使用的是 %build.counter%.
我希望版本为 1.0.0.54,而不是 1.0.0-54。
OD貌似没问题(我可以部署那些畸形的版本),但就是感觉……不对?
如何使用 TC 计算的 'right' 版本标记我的版本?
谢谢! ;)
您可以引入额外的 属性 以在 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%
到目前为止,最简单的方法是
/p:PackageVersion=1.2.%build.number%
这样做的好处是您不必以任何方式修改您的 csproj 文件。