2017-04-09 59 views
0

我正在改變一個基於.NET標準的項目,而不是可移植框架的奇怪組合。從.NET標準項目構建Nuget包時覆蓋包版本?

除了當我構建發佈二進制文件以及.nupkg包時,所有東西似乎都是按順序排列的,其版本當然是.csproj文件中指定的版本。

有沒有辦法,在命令行或批處理文件中使用msbuild來覆蓋此屬性?

基本上,如果我想要構建2.3.4.5版本,我可以使用msbuild或環境變量(任何短的修改項目文件)使nuget包的最終版本爲2.3.4.5版本嗎?

以前我有一個FinalBuilder項目,我試圖從其中操縱AssemblyInfo.cs文件,但這是錯誤傾向於至少兩次我設法將修改後的文件提交到我的存儲庫。在構建過程中只需注入版本的解決方案我會更加滿意。

這是我目前的MSBuild命令行:

msbuild DiffLib.sln /target:Clean,Rebuild /p:Configuration=Release 

回答

0

好了,事實證明,這是很容易的。我發現瞭如何破解各種的MSBuild文件來獲取變量的屬性,以使用若干個問題,但事實證明我所需要的是這樣的:

msbuild DiffLib.sln /target:Clean,Rebuild /p:Configuration=Release /p:Version=2.3.4.5 
                    ^----------------^ 

最終的NuGet包被由此而得名

DiffLib.2.3.4.5.nupkg 

和裏面的DLL也有正確的版本。

請注意,這是一個.NET標準項目,因此.csproj文件看起來像.nuspec文件而不是傳統的.csproj文件格式。這可能是爲什麼現在這麼容易。

相關問題