Восстановление Nuget не работает вообще

Проект с пакетами NuGet не будет скомпилирован, ошибка: "Проект ссылается на пакеты (и) NuGet, которые отсутствуют на этом компьютере, разрешите Восстановление пакетов NuGet, чтобы загрузить их".

Вот вариант восстановления Nuget в Visual Studio:

Вариант восстановления Nuget

Если я посмотрю на ссылку в проекте, я увижу не только отсутствующие пакеты 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! Удачи в восстановлении.

Другие вопросы по тегам