Download old version of package with NuGet
有没有一种方法可以用nuget下载以前版本的包,而不是最新版本的包?
- 用于完整版本列表的Install-Package Common.Logging -Version 。
在Visual Studio中打开包管理器控制台-它位于工具/nuget包管理器/package manager控制台中。然后运行install package命令:
1
| Install-Package Common.Logging -Version 1.2.0 |
有关详细信息,请参阅命令参考。
编辑:要列出软件包的版本,可以使用get package命令,并使用远程参数和过滤器:
1
| Get-Package -ListAvailable -Filter Common.Logging -AllVersions |
通过在Install-Package命令中的版本选项后按tab,可以得到最新可用版本的列表。
- 显式获取可用包的列表:按照@maciek的响应。您还应该注意,当在-version参数后键入空格时,vs中的nuget控制台将向您显示一些具有该包可用版本的自动完成列表。
- 对于那些使用nuget已有一段时间但从未从命令行对其进行过任何操作的用户来说,要运行pheiberg提到的PowerShell命令,您需要在Visual Studio中打开包管理器控制台-它位于"工具""库包管理器""包管理器"控制台中。
- 或查看其他窗口包管理器控制台=]
- 这个命令也可以通过用户界面使用。现在,如果发布者有一个beta版本,那么您只能得到最新的版本,这有时是不稳定的。
- @bgever-大多数发布者为测试版软件包创建预发行版,这些软件包在GUI中不被视为"最新的"。只要发布者正确使用版本控制,最新版本应该始终是稳定的版本。但这并不意味着它不会有虫子…
- 依赖项信息并检查其他可用属性:get package-listavailable[-source x]-filter common.logging-allversions选择版本、依赖项(或"get member"查看所有属性)
- Get-Package -ListAvailable没有列出所有可供我使用的版本。
- @Bartverkoeijen更重要的是,如果发布者在将包添加到解决方案的新项目时更新了包,nuget将安装最新版本,从而创建依赖关系冲突,也称为c.dll hell。应该完全避免VS2013中的UI。令人沮丧的是,微软支持这种可憎的行为。
- Get-Package命令中的ListAvailable参数已被否决。你应该用Find-Package -AllVersions代替
浏览包索引中的页面,例如http://www.nuget.org/packages/newtonsoft.json/4.0.5
然后按照以下安装说明进行操作:
1
| 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包还原。
- 这还不足以自动更改程序集引用。但是(如果您的解决方案中至少有两个程序集)是这样的:1。确保一个程序集引用包2。在packages.config中编辑正确的版本,3。管理解决方案3a上的nuget包。将该包添加到另一个项目,将其从原始项目中移除,并确认此操作3b。反转3a并确认。步骤3a将向另一个项目添加正确的程序集引用,并将其从原始项目中删除。步骤3b将向原始项目添加正确的装配参考。
在nuget 3.x(Visual Studio 2015)中,您可以从用户界面中选择版本。
在nuget 3.0中,Get-Package命令被弃用,并替换为Find-Package命令。
1
| Find-Package Common.Logging -AllVersions |
有关详细信息,请参阅nuget命令参考文档。
如果您尝试在Visual Studio 2015中使用get package,则会显示此消息。
1 2 3
| This Command/Parameter combination has been deprecated and will be removed
in the next release. Please consider using the new command that replaces it:
'Find-Package [-Id] -AllVersions' |
或者如@yishai所说,您可以在Visual Studio的nuget屏幕中使用版本号下拉列表。
由于最初的问题没有说明应该使用哪个nuget前端,我想说的是nuget 3.5增加了通过命令行客户机(也适用于降级)更新到特定版本的支持:
1
| NuGet.exe update Common.Logging -Version 1.2.0 |