古いバージョンのパッケージ(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 では、 downgrade パッケージに機能があります。
例:
次のコマンドを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].
以下のクリンボに従って注意すべきこと:
「このアプローチは、あるプレリリースバージョンから他のプレリリースバージョンへのダウングレードには機能しません。リリースバージョンへのダウングレードにのみ機能します。」
私はXavierの答えをかなり使った。パッケージのバージョンを指定された範囲に制限することは、最新バージョンの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
( inclusive )と4.0
( exclusive )の間のバージョンに制限します。そうすれば、ソリューション全体でUpdate-Package
を実行するときに、その特定のパッケージがバージョン3.x.x
を超えて更新されることを心配する必要はありません。
この機能のドキュメントは here です。