Как установить конкретную версию nuget?

2

Я устраняю некоторые проблемы с конкретными версиями nuget и msbuild, поэтому вам необходимо понизить версии nuget:

Сбой сборки с Mono 5.14.0.177, msbuild 15.0, nuget 4.7.1 на Travis CI, но не воспроизводимый в VirtualBox

Nuget можно обновить до последней версии с помощью этой команды:

nuget update -self

Однако установка определенной версии nuget кажется неподдерживаемой, это все еще устанавливает последнюю версию nuget:

nuget update -self -Version 4.6.2

И это не удается с ошибкой nuget:

nuget install nuget -Version 4.6.2

https://docs.microsoft.com/en-us/nuget/tools/cli-ref-install

https://docs.microsoft.com/en-us/nuget/tools/cli-ref-update


РЕДАКТИРОВАТЬ:

Глядя на исходный код nuget, разработчики предположили, что обновление должно всегда происходить с последней версией:

https://github.com/NuGet/NuGet.Client/blob/3803820961f4d61c06d07b179dab1d0439ec0d91/src/NuGet.Clients/NuGet.CommandLine/Common/SelfUpdater.cs#L85

// Check to see if an update is needed
if (package == null || version >= package.Version)

Очень грустное решение, Microsoft! Поэтому был представлен PR:

https://github.com/NuGet/NuGet.Client/pull/2422

  • 1
    На мой взгляд, «Обновление» подразумевает, что вы устанавливаете версию, которая больше, чем ваша собственная версия, и их код верен.
  • 0
    @AccessDenied только флаг обновления позволяет автоматически обновлять nuget, но флаг установки не поддерживает это. Установка обычно означает установку с нуля, отсюда и это разделение.
Показать ещё 4 комментария
Теги:
visual-studio
nuget

1 ответ

1

Как установить определенную версию nuget?

Согласно документу NuGet CLI:

Каждая загрузка - это файл nuget.exe. Поручите браузеру сохранить файл в папку по вашему выбору. Файл не является установщиком; вы не увидите ничего, если запустите его непосредственно из браузера.

Мы могли бы знать, что NuGet.exe не является установщиком. Вы можете просто загрузить версию, которую вы хотите, с nuget.org, а затем заменить ее на локальном диске.

Хотя команда NuGet предоставляет nuget update -self командной строки nuget update -self, которое может быть использовано для обновления nuget.exe до последней версии, так же, как вы сказали, команда nuget update не поддерживает обновление nuget.exe для указанной версии. Итак, я считаю, что ваш PR разумный, но он должен быть с низким приоритетом. Потому что мы можем обновить nuget.exe, загрузив вручную.

Надеюсь, это ясно и помогает.

  • 0
    Если вы считаете, что это был полезный пиар, то, возможно, вы можете оставить комментарий к нему? Пиар был отклонен без особых объяснений.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню