使用 NuGet 下载旧版本的包
Posted
技术标签:
【中文标题】使用 NuGet 下载旧版本的包【英文标题】:Download old version of package with NuGet 【发布时间】:2011-08-03 11:25:22 【问题描述】:有没有办法使用 NuGet 下载以前版本的包,而不是最新版本?
【问题讨论】:
【参考方案1】:在 Visual Studio 中打开包管理器控制台 - 它位于工具/NuGet 包管理器/包管理器控制台中。然后运行 Install-Package 命令:
Install-Package Common.Logging -Version 1.2.0
详情请参阅command reference。
编辑:
为了列出包的版本,您可以使用带有 远程参数和过滤器的 Get-Package 命令:
Get-Package -ListAvailable -Filter Common.Logging -AllVersions
通过在Install-Package
命令中的版本选项后按 Tab,您可以获得最新可用版本的列表。
【讨论】:
为了那些已经使用 Nuget 一段时间但从未从命令行对其进行任何操作的人的利益:要运行 PHeiberg 提到的 powershell 命令,您需要调出包管理器控制台在 Visual Studio 中 - 它位于 Tools|Library Package Manager|Package Manager Console。 这个命令也应该可以通过 UI 使用。现在,如果发布商有测试版,您只能获得最新版本,这有时会不稳定。 @bgever - 大多数发行商为在 GUI 中不被视为“最新”的 beta 软件包创建 Prereleases。只要发布者正确使用版本控制,最新版本应该始终是稳定版本。这并不意味着它不会有错误但是...... 依赖信息并检查其他可用属性:Get-Package -ListAvailable [-Source X] -Filter Common.Logging -AllVersions |选择版本、依赖项(或“|get-member”查看所有属性)Get-Package -ListAvailable
没有列出所有可用的版本。【参考方案2】:
在包索引中浏览到它的页面,例如。 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,它会插入一个下载链接。
【讨论】:
【参考方案3】:另一个选项是更改packages.config
文件中的版本号。这将导致 NuGet 在您下次构建时下载该版本的 dll。
【讨论】:
不错的一个...没想到这一点。我想NuGet Package Restore 必须为解决方案启用。 这还不足以自动更改程序集引用。但有效的方法(如果您的解决方案中至少有两个程序集)是这样的:1. 确保一个程序集引用该程序包,2. 在packages.config
中编辑正确的版本,3. 管理解决方案上的 NuGet 程序包,3a .将包添加到另一个项目,将其从原始项目中删除,并确认这一点,3b。反转 3a 并确认。步骤 3a 会将正确的程序集引用添加到另一个项目并将其从原始项目中删除。步骤 3b 会将正确的程序集引用添加到原始项目。【参考方案4】:
在 NuGet 3.x (Visual Studio 2015) 中,您只需从 UI 中选择版本
【讨论】:
很好用,但我见过没有列出所有旧版本的情况。【参考方案5】:在 NuGet 3.0 中,Get-Package
命令已弃用并替换为 Find-Package
命令。
Find-Package Common.Logging -AllVersions
详情请参阅NuGet command reference docs。
这是您尝试在 Visual Studio 2015 中使用 Get-Package 时显示的消息。
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 屏幕中的版本号下拉菜单。
【讨论】:
【参考方案6】:由于最初的问题没有说明应该使用哪个 NuGet 前端,我想提一下 NuGet 3.5 添加了对通过命令行客户端更新到特定版本的支持(也适用于降级):
NuGet.exe update Common.Logging -Version 1.2.0
【讨论】:
【参考方案7】:我登陆了这个页面,但我的要求不同,我想下载旧版本的 .nupkg 文件而不是从 VS2019 下载 - 获取旧版本的 .nupkg
-
转到nuget.org
搜索包 ex:Newton Json
点击结果包名
点击版本选项卡并下载您想要的版本
【讨论】:
【参考方案8】:通过使用上面提到的 Nuget 包管理器 UI,它有助于首先卸载 nuget 包。如果我不先卸载,我在返回 nuget 包版本时总是会遇到问题。一些引用没有正确清理。因此,通过 Nuget 包管理器安装旧的 nuget 包时,我建议采用以下工作流程:
-
选择了你的 nuget 服务器/源
查找并选择要安装旧版本的 nuget 包
卸载当前版本
点击安装下拉菜单>选择旧版本>点击安装
祝你好运:)
【讨论】:
以上是关于使用 NuGet 下载旧版本的包的主要内容,如果未能解决你的问题,请参考以下文章