我想安装旧版本的软件包(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'.
非常感谢任何帮助。
答案 0 :(得分:561)
尝试以下方法:
Uninstall-Package Newtonsoft.Json -Force
接下来是:
Install-Package Newtonsoft.Json -Version <press tab key for autocomplete>
答案 1 :(得分:259)
从 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].
根据下面的crimbo注意事项:
“这种方法不适用于从一个预发布版本降级到其他预发布版本 - 它只适用于降级到发布版本”
答案 2 :(得分: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" />
注意allowedVersions
属性。这会将该软件包的版本限制为3.0
(包含)和4.0
(独占)之间的版本。然后,当您对整个解决方案执行Update-Package
时,您无需担心更新版本3.x.x
之后更新的特定包。
此功能的文档为here。
答案 3 :(得分:17)
现在,它在 Visual Studio 2015 中得到了极大的简化。您可以在用户界面中执行Downgrade / Upgrade
,而无需在程序包管理器控制台中执行命令。
答案 4 :(得分:0)
另一个更手动的选项:
.nuget\nuget.exe install Newtonsoft.Json -Version 4.0.5