如何通过NuGet安装旧版本的软件包?

Neb*_*diz 374 nuget nuget-package

我想安装旧版本的软件包(Newtonsoft.Json).但NuGet回滚.

PM> Install-Package Newtonsoft.Json -Version 4.0.5
Successfully installed 'Newtonsoft.Json 4.0.5'.
Install failed. Rolling back...
Install-Package : Already referencing a newer version of 'Newtonsoft.Json'.
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

Xav*_*ter 571

尝试以下方法:

Uninstall-Package Newtonsoft.Json -Force
Run Code Online (Sandbox Code Playgroud)

其次是:

Install-Package Newtonsoft.Json -Version <press tab key for autocomplete>
Run Code Online (Sandbox Code Playgroud)

  • 你没有提到包的现有依赖关系,所以我不知道这一点:尝试将-Force开关添加到uninstall-package命令(如上所述) (8认同)

Jam*_*and 262

Nuget 2.8开始,有一个降级软件包的功能.

Nuget 2.8发行说明

例:

输入到Package Manager控制台的以下命令会将couchbase客户端降级到版本1.3.1.0

Update-Package CouchbaseNetClient -Version 1.3.1.0
Run Code Online (Sandbox Code Playgroud)

结果:

Updating 'CouchbaseNetClient' from version '1.3.3' to '1.3.1.0' in project [project name].
Removing 'CouchbaseNetClient 1.3.3' from [project name].
Successfully removed 'CouchbaseNetClient 1.3.3' from [project name].
Run Code Online (Sandbox Code Playgroud)

根据下面的crimbo注意事项:

"这种方法不适用于从一个预发布版本降级到其他预发布版本 - 它只适用于降级到发布版本"

  • 现在这应该是公认的答案,因为它是最省力的最佳解决方案. (13认同)
  • 不幸的是,这种方法不适用于从一个预发布版本降级到另一个预发布版本 - 它只适用于降级到发布版本. (7认同)

ken*_*ken 50

我已经使用了Xavier的答案了.我想补充说,在最新版本的NuGet中,将包版本限制到指定范围是很容易和有用的.

例如,如果你再也不想Newtonsoft.Json被过去的版本更新,3.x.x在您的项目,改变相应的package在你的元素packages.config文件看起来像这样:

<package id="Newtonsoft.Json" version="3.5.8" allowedVersions="[3.0, 4.0)" targetFramework="net40" />
Run Code Online (Sandbox Code Playgroud)

注意该allowedVersions属性.这会将该软件包的版本限制为3.0(包含)和4.0(包括)之间的版本.然后,当您Update-Package在整个解决方案上执行操作时,您无需担心特定包正在更新过去的版本3.x.x.

此功能的文档在此处.

  • 我正在看JQuery 1.9和2.0. (6认同)
  • 非常有用,可以防止NuGet更新破坏您的解决方案!(Microsoft.Net.Http v2.1.10,我在看着你...) (4认同)

Raj*_*dev 18

现在,它在Visual Studio 2015中非常简化.您可以Downgrade / Upgrade在User界面中进行操作,而无需在Package Manager控制台中执行命令.

  1. Right click on your projectgo to Manage Nuget Packages.

  2. 请看下面的图片.

    • Select your Package and Choose the Version,你想安装.

Project的Nuget Package Manager窗口

很简单,不是吗?:) 希望这可以帮助...