Восстановление Nuget не работает вообще
Проект с пакетами NuGet не будет скомпилирован, ошибка: "Проект ссылается на пакеты (и) NuGet, которые отсутствуют на этом компьютере, разрешите Восстановление пакетов NuGet, чтобы загрузить их".
Вот вариант восстановления Nuget в Visual Studio:
Если я посмотрю на ссылку в проекте, я увижу не только отсутствующие пакеты Nuget!
Если я попытаюсь восстановить на уровне решения...
Если я попытаюсь использовать опцию Package Manager Console:
update-package -reinstall -projectname myProjectName
Окно вывода успешно удаляется, а затем переустанавливает все пакеты!
Ни одна из ссылок не является хорошей, они все еще отмечены желтым флагом, как на изображении выше.
Файл Packages.Config выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="NUnit" version="3.4.0" targetFramework="net45" />
<package id="Selenium.Support" version="2.53.1" targetFramework="net45" />
<package id="Selenium.WebDriver" version="2.53.1" targetFramework="net45" />
<package id="Selenium.WebDriver.ChromeDriver" version="2.23.0.1" targetFramework="net45" />
</packages>
Когда это начало терпеть неудачу?
Сегодня мне нужно было создать решение, которое включало бы все проекты в папке (только один из них был представлен в примере выше). Я назвал это AllSolutions.sln. Когда я добавил все эти проекты, я получил сообщения об ошибках Nuget, говорящие об отсутствии пакетов. Я попытался, с успехом, восстановить все pkgs NUGET. используя уровень решения "Восстановить все пакеты". Компиляция тогда работала для AllSolutions.sln.
Затем я открыл одно из решений с моего диска C: (правильно сопоставленного с TFS). Это когда проблема, показанная выше, всплыла.
1 ответ
Компиляция работает сейчас, вот решение:
Я перезапустил Visual Studio, подключился к TFS и нажал на то же решение, что и раньше. Но на этот раз в проекте появились новые элементы:
Папка.nuget была исходной папкой, которая, по-видимому, исчезла, когда я включил этот проект в AllSolutions.sln. (Обратите внимание, я не удалял эту папку вручную). Второй - это наш внутренний проект, который просто указывает, какие пакеты мы используем в файле packages.config.
Я понятия не имею, почему переподключение к TFS, открытие файла Solution из меню Team Explorer, (после перезагрузки VS) решило эту проблему. Но, возможно, это поможет кому-то еще.
И в качестве доказательства, оригинальные ссылки "Желтая метка", показанные выше, теперь выглядят так:
Первопричина:
Я считаю, что включение одного и того же проекта в несколько проектов имеет побочные эффекты, связанные с восстановлением Nuget. Причина в том, что папка.nuget удаляется, как показано в этом посте.
Что узнали:
Миграция скриптов Nuget не была необходима.
Если в вашем проекте возникла эта проблема, это может быть связано с отсутствующей папкой.nuget! Удачи в восстановлении.