如何通过NuGet安装旧版本的软件包?
我想安装较旧版本的软件包(如何通过NuGet安装旧版本的软件包?,nuget,nuget-package,Nuget,Nuget Package,我想安装较旧版本的软件包(Newtonsoft.Json)。但努吉回过头来: 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'.
Newtonsoft.Json
)。但努吉回过头来:
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>
安装软件包Newtonsoft.Json-Version
我用了不少。我想补充一点,在最新版本的NuGet中,将包版本限制在指定的范围是很容易和有用的
例如,如果您从不希望项目中的Newtonsoft.Json
更新为过去版本3.x.x
,请将packages.config
文件中相应的package
元素更改为如下所示:
<package id="Newtonsoft.Json" version="3.5.8" allowedVersions="[3.0, 4.0)" targetFramework="net40" />
请注意allowedVersions
属性。这会将该软件包的版本限制为3.0
(包含的)和4.0
(独占的)之间的版本。然后,当您对整个解决方案执行更新包时,您不必担心特定包会更新到3.x.x
之前的版本
此功能的文档为。自NuGet 2.8起,有一项功能可以降低软件包的级别
例如:
输入到Package Manager控制台的以下命令将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].
下面需要注意的事项:
这种方法不适用于从一个预发布版本降级到另一个预发布版本-它只适用于降级到一个发布版本
现在,它在Visual Studio 2015及更高版本中被大大简化。您可以在用户界面本身内执行降级/升级,而无需在Package Manager控制台中执行命令
右键单击项目并*转到管理NuGet软件包
请看下图
选择您的软件包并选择要安装的版本
非常简单,不是吗?:)另一个更手动的选项:
.nuget\nuget.exe install Newtonsoft.Json -Version 4.0.5
twitterizer使用Newtonsoft.Json,我必须安装旧版本而不卸载新版本。PM>卸载软件包Newtonsoft.Json卸载软件包:无法卸载“Newtonsoft.Json 4.0.8”,因为“twitterizer 2.4.0.26532”依赖于它。您没有提到软件包的现有依赖项,因此我不知道:请尝试将-Force开关添加到卸载软件包命令(如上编辑)中。很抱歉,我的缺失-强制工作,我安装了旧的。非常感谢。当卸载EntityFramework 6 beta以降级到版本5时,我不断收到消息,告诉我重新启动VS以完成卸载,但这样做并没有删除消息。我只是进入packages文件夹并从中删除了剩余的空树结构,然后它就被删除了successful@Simon_Weaver我怀疑EF 6 pkg正在做一些导致这种情况的事情(注意到一些AppDomain代码,例如PowerShell脚本中的代码,所以VS很可能保留了一些dll)防止NuGet更新破坏您的解决方案非常有用!(Microsoft.Net.Http v2.1.10,我在看你…)我在看JQuery 1.9和2.0.Microsoft.Owin:-)这可能的重复现在应该是公认的答案,因为它是最省力的解决方案。是的,非常有效,包括降级所有依赖项-完美不幸的是,这种方法不适用于从一个预发布版本降级到另一个预发布版本-它只适用于降级到一个发布版本。@James Roland如果你能在回答页上突出显示crimbo的预发布警告,那就太好了!这是一种方法:)非常适合那些编程工具集包括一个好的编程编辑器、tail和一个web浏览器=)