![](/img/trans.png)
[英]Is there a way to automatically install a specific version of a Nuget Package at build time?
[英]How to install a specific version of nuget?
我正在使用特定版本的nuget和msbuild解決一些問題,因此需要降級nuget版本:
在Travis CI上使用Mono 5.14.0.177,msbuild 15.0,nuget 4.7.1構建失敗,但在VirtualBox中無法重現
Nuget可以使用以下命令更新到最新版本:
nuget update -self
但是,安裝特定版本的nuget似乎不受支持,這仍然安裝最新版本的nuget:
nuget update -self -Version 4.6.2
這失敗了nuget not found錯誤:
nuget install nuget -Version 4.6.2
https://docs.microsoft.com/en-us/nuget/tools/cli-ref-install
https://docs.microsoft.com/en-us/nuget/tools/cli-ref-update
編輯:
查看nuget源代碼,開發人員假設更新應始終發生在最新版本中:
// Check to see if an update is needed
if (package == null || version >= package.Version)
非常悲傷的決定,微軟! 因此提交了PR,但被拒絕了:
如何安裝特定版本的nuget?
根據文檔NuGet CLI參考 :
每次下載都是nuget.exe文件。 指示您的瀏覽器將文件保存到您選擇的文件夾中。 該文件不是安裝程序 ; 如果直接從瀏覽器運行它,您將看不到任何內容。
我們可以知道,NuGet.exe不是安裝程序。 您可以從nuget.org下載所需的版本,然后替換本地磁盤上的版本。
雖然NuGet團隊提供命令行nuget update -self
,可以用來將nuget.exe
更新到最新版本,就像你說的那樣,nuget update命令不支持更新nuget.exe用於指定版本。 所以,我認為你的PR是合理的,但它應該是低優先級。 因為我們可以通過手動下載來更新nuget.exe
。
希望這清楚並有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.