Как я могу исправить недостающие ссылки nuget после перемещения проекта в Visual Studio 2015

У меня была такая структура проекта, как это:

 WebApp
-- WebApp
-- WebApp.sln
 WebApp.Tests
-- WebApp.Tests.csproj

Я переместил WebApp.Tests в WebApp, используя перемещение (простой щелчок и перетаскивание в папку WebApp). Я редактировал WebApp.sln, чтобы исправить ссылку на проект, чтобы он загружался.

Когда я создаю, Nuget жалуется на отсутствие пакетов и восстановление. Я загрузил и использовал восстановление nuget.exe на своем решении, и он сообщил, что все было там.

На основании других ответов StackOverflow я пробовал следующее:

  • Отредактируйте пути подсказки ссылки на тестовый проект. Я изменил с. \WebApp\packages\PACKAGE на..\packages\PACKAGE
  • Обновить Visual Studio (несколько раз)
  • Удалить содержимое папок пакетов и каталогов bin/obj проектов
  • Используйте консоль менеджера пакетов для переустановки пакетов в тестовом проекте

Все это не удалось устранить проблему. Когда я использовал диспетчер пакетов, чтобы попытаться переустановить пакеты с помощью этой команды, это дало мне ту же ошибку, что и для создания проекта. Сначала я должен восстановить пакеты.

Есть ли какой-нибудь быстрый способ исправить мой проект? Я действительно не хочу проходить через каждый пакет и удалять/переустанавливать вручную. Кроме того, как я мог предотвратить эту проблему в первую очередь? Есть ли встроенный способ перемещения мест проекта?

Ответы

Ответ 1

В конце моего файла проекта был похож на XML:

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
  <PropertyGroup>
    <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
  </PropertyGroup>
  <Error Condition="!Exists('..\WebApp\packages\SPECIFICPACKAGE')" Text="$([System.String]::Format('$(ErrorText)', '..\WebApp\packages\SPECIFICPACKAGE'))" />
</Target>

Изменив пакет.. \Webapp\packages на.. \, такие как остальная часть файла, мое решение теперь просто отлично.

Ответ 2

У меня была такая же проблема, когда я физически переместил папку проекта в папку src и получил ошибку недостающих пакетов. Мое решение состояло в том, чтобы открыть файл .csproj в блокноте и заменить каждый экземпляр это:

..\пакеты\

с этим:

.. \..\пакеты\

Он решил проблему...