Как установить более старую версию пакета через 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'.

Любая помощь будет оценена.

4 ответа

Решение

Попробуйте следующее:

Uninstall-Package Newtonsoft.Json -Force

с последующим:

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

Начиная с Nuget 2.8 есть возможность понизить пакет.

Примечания к выпуску Nuget 2.8

Пример:

Следующая команда, введенная в Консоль диспетчера пакетов, понизит версию клиента 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].

Что-то, чтобы отметить согласно прайс-листу ниже:

"этот подход не работает для понижения с одной предварительной версии до другой предварительной версии - он работает только для перехода на версию выпуска"

Я использовал ответ Ксавье совсем немного. Я хочу добавить, что ограничение версии пакета указанным диапазоном легко и полезно в последних версиях 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,

Документация по этой функциональности здесь.

Теперь это очень сильно упростили в Visual Studio 2015. Ты можешь сделать Downgrade / Upgrade в самом интерфейсе пользователя, без выполнения команд в консоли диспетчера пакетов.

  1. Right click on your project а также go to Manage Nuget Packages,

  2. Посмотрите на изображение ниже.

    • Select your Package and Choose the Version, который вы хотели установить.

Окно диспетчера пакетов Nuget в Project

Очень Очень Просто, не так ли?:) Надеюсь это поможет...

Еще один, более ручной способ получить это:

.nuget\nuget.exe install Newtonsoft.Json -Version 4.0.5
Другие вопросы по тегам