Вопрос по – Как установить более старую версию пакета через NuGet?

364

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

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

возможный дубликатDownload old version of package with nuget Dirk Vollmar

Ваш Ответ

4   ответа
256

Nuget 2.8 есть особенностьdowngrade упаковка.

Примечания к выпуску 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].

Something to note as per crimbo below:

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

К сожалению, этот подход не работает для понижения с одной предварительной версии до другой предварительной версии - он работает только для понижения до версии выпуска.
Теперь это должен быть принятый ответ как лучшее решение с минимальными усилиями.
Да, работает как шарм, включая понижение всех зависимостей - отлично
@ Джеймс Роланд, было бы здорово, если бы вы могли выделить предупреждение о предварительном выпуске с помощью Crimbo в ответе.
15

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

Right click on your project and go to Manage Nuget Packages.

Look at the below image.

Select your Package and Choose the Version, which you wanted to install.

Nuget Package Manager window of Project

Very Very Simple, Isn't it? :) Надеюсь это поможет...

Лучший ответ!!!!
49

что ограничение версии пакета указанным диапазоном легко и полезно в последних версиях 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 (inclusive) а также4.0 (exclusive). Затем, когда вы делаетеUpdate-Package В целом, вам не нужно беспокоиться о том, что конкретный пакет обновляется по сравнению с предыдущей версией.3.x.x.

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

Я смотрю на JQuery 1.9 & amp; 2,0.
Очень полезно, чтобы обновления NuGet не ломали ваше решение! (Microsoft.Net.Http v2.1.10, я смотрю на вас ...)
561

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

Uninstall-Package Newtonsoft.Json -Force

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

Install-Package Newtonsoft.Json -Version <press tab key for autocomplete>
Извините за мое отсутствие. -Сила сработала и я установил старую. Огромное спасибо. Nebide Yildiz
@Simon_Weaver Я подозреваю, что EF 6 pkg делает что-то, что вызывает это (заметил некоторый код AppDomain, например, в скриптах PowerShell, так что, вероятно, VS удерживает некоторые библиотеки DLL)
Твиттерайзер использует Newtonsoft.Json, я должен установить старую версию без деинсталляции новой. ПМ & GT; Uninstall-Package Newtonsoft.Json Uninstall-Package: Невозможно удалить «Newtonsoft.Json 4.0.8». потому что "твиттерайзер 2.4.0.26532" зависит от этого. Nebide Yildiz
при удалении бета-версии EntityFramework 6 для перехода на версию 5 я продолжал получать сообщения, в которых предлагалось перезапустить VS для завершения удаления, но это не привело к удалению сообщения. Я только что вошел в папку с пакетами и удалил оставшуюся пустую древовидную структуру оттуда, и тогда это было успешно
Вы не упомянули о существующих зависимостях пакета, поэтому я не знал об этом: попробуйте добавить ключ -Force в команду uninstall-package (как отредактировано выше)

Похожие вопросы