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

我想安装一个旧版本的软件包( 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'. 

任何帮助将不胜感激。

尝试以下方法:

 Uninstall-Package Newtonsoft.Json -Force 

其次是:

 Install-Package Newtonsoft.Json -Version <press tab key for autocomplete> 

Nuget 2.8开始,有一个降级软件包的function。

Nuget 2.8发行说明

例:

进入软件包pipe理器控制台的以下命令将把couchbase客户端降级到版本1.3.1.0

 Update-Package CouchbaseNetClient -Version 1.3.1.0 

结果:

 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]. 

按照下面的crimbo要注意的事项:

“这种方法不适用于从一个预发行版本降级到其他预发行版本 – 它只适用于降级到发行版本”

我已经使用了Xavier的回答。 我想补充一点,在最新版本的NuGet中,将软件包版本限制在一个指定的范围内是很容易和有用的。

例如,如果您不希望Newtonsoft.Json在您的项目中更新版本3.xx ,请更改packages.config文件中对应的package元素,如下所示:

 <package id="Newtonsoft.Json" version="3.5.8" allowedVersions="[3.0, 4.0)" targetFramework="net40" /> 

注意allowedVersions属性。 这会将该软件包的版本限制为3.0 )和4.0 )之间的版本。 然后,当您在整个解决scheme上执行Update-Package时,您无需担心从3.xx版本开始更新的特定软件包。

这个function的文档在这里 。

现在,它在Visual Studio 2015中非常简单。 您可以在用户界面中进行Downgrade / Upgrade ,而无需在软件包pipe理器控制台中执行命令。

  1. Right click on your project然后go to Manage Nuget Packages

  2. 看看下面的图片。

    • Select your Package and Choose the Version你想要安装的版本。

项目的Nuget Package Manager窗口

非常非常简单,不是吗? :) 希望这可以帮助…