Завантажте стару версію пакета з NuGet


907

Чи є можливість завантажити попередню версію пакета з NuGet , не останню?

Відповіді:


1117

Візьміть консоль менеджера пакунків у Visual Studio - це в інструментах / NuGet Package Manager / Package Manager Console. Потім запустіть команду Install-Package:

Install-Package Common.Logging -Version 1.2.0

Докладніше див. Посилання на команду .

Редагувати: Щоб перелічити версії пакету, ви можете скористатися командою Get-Package з віддаленим аргументом та фільтром:

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

Натискаючи вкладку після опції версії в Install-Packageкоманді, ви отримуєте список останніх доступних версій.


54
На користь тих, хто користується Nuget деякий час, але ніколи нічого не робив з ним з командного рядка: Щоб запустити команди shellhell, про які згадує PHeiberg, ви захочете вивести консоль менеджера пакунків у Visual Studio - це в Інструментах | Менеджер пакунків бібліотеки | Консоль менеджера пакунків .
Джонатан Моффат

20
Ця команда також повинна бути доступна через інтерфейс користувача. Тепер, якщо у видавця є бета-версія, ви можете отримати лише цю останню версію, яка іноді нестабільна.
Барт Веркойєн

2
@bgever - Більшість видавців створюють попередні випуски для бета-пакетів, які не вважаються "останніми" в графічному інтерфейсі. Поки видавець правильно використовує версію, остання версія завжди повинна бути стабільною. Це не означає, що в ньому не буде помилок ...
Jesse Webb

3
Інформація про залежність та вивчення інших доступних властивостей: Get-Package -ListAvailable [-Source X] -Filter Common.Logging -AllVersions | виберіть версію, залежності (або ' | get-member ', щоб побачити всі властивості)
Curtis Yallop

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 .
Леніел Маккаферрі

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

0

Використовуючи користувальницький інтерфейс Nuget Package Manager, як було зазначено вище, це допомагає спочатку видалити нут-пакет. У мене завжди виникають проблеми, коли я повертаюсь до новітньої версії пакета, якщо я не видаляю спочатку. Деякі посилання не очищені належним чином. Тому я пропоную наступний робочий процес під час встановлення старого пакунка нугів через Менеджер пакунків Nuget:

  1. Вибрали ваш власний сервер / джерело
  2. Знайдіть і виберіть пакунок нута, у який хочете встановити старішу версію
  3. Видаліть поточну версію
  4. Клацніть спадне меню Встановити> Вибрати старішу версію> Клацніть Встановити

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

Щасти :)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.