使用NuGet下载旧版本的包

有没有办法用NuGet下载以前版本的包,而不是最新的?

245635 次浏览

在Visual Studio中调出包管理器控制台-它位于Tools/NuGet包管理器/包管理器控制台中。然后运行Install-Package命令:

Install-Package Common.Logging -Version 1.2.0

详情请参阅命令引用

编辑:为了列出包的版本,您可以使用带有的远程参数和过滤器的Get-Package命令:

Get-Package -ListAvailable -Filter Common.Logging -AllVersions

通过按Install-Package命令中版本选项后的选项卡,您将获得最新可用版本的列表。

浏览到包索引中的页面,例如。http://www.nuget.org/packages/Newtonsoft.Json/4.0.5

然后按照给出的安装说明进行操作:

Install-Package Newtonsoft.Json -Version 4.0.5

或者要下载.nupkg文件,请按照“下载”链接,例如。https://www.nuget.org/api/v2/package/Newtonsoft.Json/4.0.5

过时:安装我的Chrome扩展Nutake,它插入了一个下载链接。

另一种选择是更改packages.config文件中的版本号。这将导致NuGet在您下次构建时下载该版本的dll。

在NuGet 3. x(Visual Studio 2015)中,您只需从UI中选择版本

NuGet 3包管理器UI

在NuGet 3.0中,Get-Package命令被弃用并替换为Find-Package命令。

Find-Package Common.Logging -AllVersions

详情请参阅NuGet命令参考文档

如果您尝试在Visual Studio 2015中使用Get-Package,则会显示此消息。

This Command/Parameter combination has been deprecated and will be removedin the next release. Please consider using the new command that replaces it:'Find-Package [-Id] -AllVersions'

或者正如@Yishai所说,您可以在Visual Studio的NuGet屏幕中使用版本号下拉列表。

由于最初的问题没有说明应该使用哪个NuGet前端,我想提一下NuGet 3.5增加了对通过命令行客户端更新到特定版本的支持(也适用于降级):

NuGet.exe update Common.Logging -Version 1.2.0

通过使用Nuget包管理器UI,如上所述,它有助于先卸载nuget包。如果我不先卸载,我总是在返回nuget包版本时遇到问题。一些参考没有正确清理。所以我建议在通过Nuget包管理器安装旧nuget包时使用以下工作流程:

  1. 选择您的nuget服务器/源
  2. 查找并选择要安装旧版本的nuget包
  3. 卸载当前版本
  4. 单击安装下拉列表>选择旧版本>单击安装

在此处输入图片描述

祝你好运:)

我登陆这个页面,但我的要求是不同的,我想下载旧版本的. nupkg文件,而不是从VS2019下载-得到旧版本的. nupkg

  1. 转到nuget.org
  2. 搜索包ex: Newton Json
  3. 点击结果包名称
  4. 单击版本选项卡并下载您想要的版本
  5. 截图