Если некоторые пакеты, которые вы используете (и все еще хотите использовать), больше не доступны, я предлагаю вам сделать их резервную копию.
Найдите кеш Nuget. на вашем сервере. В Windows это находится по адресу
%userprofile%.nuget\packages
Найдите пакеты (и версию), для которых вы хотите создать резервную копию, и скопируйте файлы .nupkg
в соответствующие папки.
Тогда у вас есть два варианта:
- Создайте частную ленту Nuget
- Создайте локальный канал Nuget на своем компьютере для разработки
Преимущество первого варианта состоит в том, что он является единым источником, который можно использовать на любой машине (компьютер разработки, сервер сборки и т. д.), но у вас будет больше настроек, особенно для аутентификации/авторизации (потому что это приватный канал)
Для 2-го варианта: Просто создайте папку C:/Nuget
и поместите в нее любые .nupkg
, какие хотите. Затем в Visual Studio перейдите к:
Инструменты -> Диспетчер пакетов Nuget -> Настройки диспетчера пакетов -> Источники пакетов
Нажмите зеленую кнопку +
, чтобы добавить новый источник, просто дайте ему имя Local
и перейдите к своему C:/Nuget
, чтобы установить источник.
С этого момента, когда вы захотите восстановить свои пакеты Nuget, Visual Studio сначала просматривает канал nuget.org
, и если он не находит упомянутые пакеты, затем просматривает ваш локальный канал и кэширует установленный пакет в %userprofile%.nuget\packages
вашей машины. .
Я надеюсь, что отвечая на ваш вопрос, я не совсем уверен в том, что вы спросили, и в ваших знаниях о Nuget.
ОБНОВЛЕНИЕ:
Думаю, теперь я лучше понимаю ваш вопрос.
Прежде всего, я думаю, вы неправильно понимаете команду Update-Package -Reinstall
. Он переустановит пакеты с той же версией, на которую уже ссылались, но просто переустановит их. Это полезная команда, например, когда вы меняете целевую структуру вашего проекта. Затем вы можете переустановить те же версии пакетов, и они будут перенацелены на эту версию .NET Framework.
Так что, если nuget restore
не работает, то Update-Package -Reinstall
, очевидно, тоже не сработает.
С Nuget, когда что-то не работает, вы не должны настаивать, а вместо этого найдите настройку, которая заставит это снова работать. Я не могу сосчитать, сколько раз я обращался к разным кэшам, чтобы удалить некоторые кэшированные пакеты.
Я думаю, вы должны попытаться использовать nuget restore
и посмотреть, какие пакеты вызывают проблемы, затем удалить эти пакеты (это просто удалит ссылку из .csproj
и packages.config
, если они еще не установлены в проекте), затем вы, наконец, можете установить новейшая версия этих пакетов.
person
Jérôme MEVEL
schedule
12.10.2018