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

Любая помощь будет принята с благодарностью.

Ответ 1

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

Uninstall-Package Newtonsoft.Json -Force

а затем:

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

Ответ 2

По состоянию на 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].

Что-то примечание в соответствии с приведенным ниже:

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

Ответ 3

Я использовал 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.

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

Ответ 4

Теперь это очень сильно упростилось в 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 Package Manager window of Project

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

Ответ 5

Еще одна ручная опция, чтобы получить его:

.nuget\nuget.exe install Newtonsoft.Json -Version 4.0.5