![](/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.