使用NuGet下载旧版本的软件包

ryu*_*ice 899 nuget

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

PHe*_*erg 1111

在Visual Studio中打开软件包管理器控制台 - 它位于Tools/NuGet软件包管理器/软件包管理器控制台中.然后运行Install-Package命令:

Install-Package Common.Logging -Version 1.2.0
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅命令参考

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

Get-Package -ListAvailable -Filter Common.Logging -AllVersions
Run Code Online (Sandbox Code Playgroud)

通过在Install-Package命令中的version选项后按Tab键,可以获得最新可用版本的列表.

  • 为了那些一直使用Nuget但从未使用过命令行做过任何事情的人的好处:要运行PHeiberg提到的powershell命令,你需要在Visual Studio中启动软件包管理器控制台 - 它位于**工具|库包管理器|包管理器控制台**. (53认同)
  • 此命令也应该可以通过UI获得.现在,如果发布商拥有测试版,那么您只能获得最新版本,这有时会不稳定. (20认同)
  • 依赖关系信息并检查可用的其他属性:Get-Package -ListAvailable [-Source X] -Filter Common.Logging -AllVersions**| 选择版本,依赖项**(或'**| get-member**'查看所有属性) (3认同)
  • @bgever - 大多数发布者为测试版包创建*Prereleases*,这些测试包不被认为是GUI中的"最新版".只要发布者正确使用版本控制,最新版本应该始终是稳定版本.这并不意味着它不会有bug但是...... (2认同)
  • `Get-Package -ListAvailable`不会**为我列出所有可用的版本. (2认同)
  • Get-Package命令中的ListAvailable参数已被弃用。您应该改用`Find-Package <id> -AllVersions` (2认同)

Col*_*nic 49

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

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

Install-Package Newtonsoft.Json -Version 4.0.5
Run Code Online (Sandbox Code Playgroud)

或者,要下载.nupkg文件,请点击"下载"链接,例如.https://www.nuget.org/api/v2/package/Newtonsoft.Json/4.0.5

已过时:安装我的Chrome扩展程序Nutake,它会插入下载链接.


Mor*_*sen 34

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

  • 这还不足以自动更改装配参考.可行的方法(如果你的解决方案中至少有两个程序集)是这样的:1.确保一个程序集引用包,2.在`packages.config`中编辑正确的版本,3.管理解决方案上的NuGet包,3a.将包添加到另一个项目,将其从原始项目中删除,并确认这一点,3b.反转3a并确认.步骤3a将向另一个项目添加正确的程序集引用,并将其从原始项目中删除.步骤3b将向原始项目添加正确的程序集引用. (12认同)

Yis*_*zer 23

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

NuGet 3包管理器UI


Wal*_*her 5

在NuGet 3.0中,Get-Package不推荐使用该命令并将其替换为Find-Package命令.

Find-Package Common.Logging -AllVersions
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅NuGet命令参考文档.

如果您尝试在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'
Run Code Online (Sandbox Code Playgroud)

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