Скачать старую версию пакета с NuGet

907

Есть ли способ загрузить предыдущую версию пакета с NuGet , а не последнюю?

ryudice
источник

Ответы:

1117

Откройте консоль диспетчера пакетов в Visual Studio - она ​​находится в Инструменты / Диспетчер пакетов NuGet / Консоль диспетчера пакетов. Затем выполните команду Install-Package:

Install-Package Common.Logging -Version 1.2.0

См. Справочник команд для деталей.

Редактировать: чтобы вывести список версий пакета, вы можете использовать команду Get-Package с аргументом remote и фильтром:

Get-Package -ListAvailable -Filter Common.Logging -AllVersions

Нажав клавишу Tab после опции версии в Install-Packageкоманде, вы получите список последних доступных версий.

PHeiberg
источник
54
Для тех, кто какое-то время использовал Nuget, но ничего не делал с ним из командной строки: чтобы запустить команды powershell, о которых упоминает PHeiberg, вы захотите вызвать консоль диспетчера пакетов в Visual Studio - она ​​находится в Tools | Диспетчер пакетов библиотеки | Консоль диспетчера пакетов .
Джонатан Моффат
20
Эта команда также должна быть доступна через пользовательский интерфейс. Теперь, если у издателя есть бета-версия, вы можете получить только последнюю версию, которая иногда нестабильна.
Барт Verkoeijen
2
@bgever - большинство издателей создают пререлизы для бета-пакетов, которые не считаются «последними» в GUI. Если издатель использует версионирование правильно, последняя версия всегда должна быть стабильной. Это не значит, что в нем не будет ошибок ...
Джесси Уэбб
3
Информация о зависимостях и изучение доступных других свойств: Get-Package -ListAvailable [-Source X] -Filter Common.Logging -AllVersions | выберите версию, зависимости (или ' | get-member ', чтобы увидеть все свойства)
Кертис Яллоп
2
Get-Package -ListAvailableэто не список всех доступных версий для меня.
Роман Старков
52

Перейдите на его страницу в индексе пакета, например. http://www.nuget.org/packages/Newtonsoft.Json/4.0.5

Затем следуйте приведенным инструкциям по установке:

Install-Package Newtonsoft.Json -Version 4.0.5

Кроме того, чтобы загрузить .nupkgфайл, перейдите по ссылке «Скачать», например. https://www.nuget.org/api/v2/package/Newtonsoft.Json/4.0.5

Устаревшее: установите мое расширение Chrome Nutake, которое вставляет ссылку для скачивания.

Полковник паника
источник
35

Другой вариант - изменить номер версии в packages.configфайле. Это заставит NuGet загрузить dll для этой версии при следующей сборке.

Мортен Кристиансен
источник
1
Хороший ... не думал об этом. Я думаю, что NuGet Package Restore должен быть включен для решения, хотя.
Лениэль Маккаферри
12
Этого недостаточно для автоматического изменения ссылки на сборку. Что работает, хотя (если у вас есть две сборки в вашем решении) это: 1. убедитесь, что одна сборка ссылается на пакет, 2. отредактируйте правильную версию в packages.config, 3. управляйте пакетами NuGet в решении, 3a. добавьте пакет в другой проект, удалив его из исходного проекта, и подтвердите это, 3b. поверните 3a и подтвердите. Шаг 3a добавит правильную ссылку на сборку в другой проект и удалит ее из оригинала. Шаг 3b добавит правильную ссылку на сборку в исходный проект.
Йерун Виерт Плюмерс
25

В NuGet 3.x (Visual Studio 2015) вы можете просто выбрать версию из пользовательского интерфейса

Пользовательский интерфейс диспетчера пакетов NuGet 3

Ишай Галацер
источник
Приятно, когда это работает, но я видел случаи, когда не все старые версии перечислены там.
UuDdLrLrSs
5

В NuGet 3.0 Get-Packageкоманда устарела и заменена Find-Packageкомандой.

Find-Package Common.Logging -AllVersions

Подробности смотрите в справочных документах команды NuGet .

Это сообщение отображается, если вы пытаетесь использовать Get-Package в Visual Studio 2015.

This Command/Parameter combination has been deprecated and will be removed
in the next release. Please consider using the new command that replaces it: 
'Find-Package [-Id] -AllVersions'

Или, как сказал @Yishai, вы можете использовать выпадающий номер версии на экране NuGet в Visual Studio.

Уолт Ритчер
источник
3

Поскольку в первоначальном вопросе не указано, какой интерфейс NuGet следует использовать, я хотел бы отметить, что NuGet 3.5 добавляет поддержку обновления до определенной версии через клиент командной строки (что также работает для понижения версии):

NuGet.exe update Common.Logging -Version 1.2.0
CodeFox
источник
0

Используя пользовательский интерфейс диспетчера пакетов Nuget, как упоминалось выше, это помогает сначала удалить пакет nuget. У меня всегда возникают проблемы при возвращении к версии пакета nuget, если я не удаляю сначала. Некоторые ссылки не очищены должным образом. Поэтому я предлагаю следующий рабочий процесс при установке старого пакета nuget через диспетчер пакетов Nuget:

  1. Выбрал ваш nuget сервер / источник
  2. Найдите и выберите пакет nuget, который вы хотите установить более старую версию
  3. Удалить текущую версию
  4. Нажмите на раскрывающийся список установки> Выбрать старую версию> Нажмите Установить

введите описание изображения здесь

Удачи :)

Анна Мауле
источник