2017-10-05 95 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這是一個很棒的提示,謝謝! –