Отсутствующие ссылки Visual Studio/NuGet

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

Nuget считает, что мои зависимости установлены. Visual Studio не согласна.

enter image description here

Что мне нужно сделать, чтобы NuGet и Visual Studio соглашались друг с другом?

Ответы

Ответ 1

Это не просто, но попробуйте выполнить следующие шаги:

  • В консоли диспетчера пакетов восстановите свои пакеты nuget
  • Откройте csproj в блокноте и проверьте правильность путей. Если не исправить их.
  • Если вышеприведенные шаги не будут работать в консоли диспетчера пакетов, переустановите все ваши пакеты.
  • Если проект открыт, выгрузите его, а затем перезагрузите. Это заставляет Visual Studio повторно разрешать ссылки.

Пояснение:

Когда nuget добавляет ссылку, добавьте его в csproj, как показано ниже:

<Reference Include="Newtonsoft.Json">
  <HintPath>..\packages\Newtonsoft.Json.4.5.9\lib\net40\Newtonsoft.Json.dll</HintPath>
</Reference>

Это означает, что номер пакета находится в HintPath. После объединения двух ветвей число версий nuget, вероятно, изменилось. Это приводит к тому, что HintPath также следует изменить на правильный путь с версией. Вот почему Visual Studio имеет проблемы с их поиском.

Ответ 2

(VisualStudio 2017). Ни одно из предложений здесь не работало... - пока я полностью не закрыл VisualStudio и не перезапустил его. Это заняло пару секунд дольше, чем обычно, но после этого все зависимости были восстановлены!

Ответ 3

В Visual Studio 2017 для проекта Asp.Net Core этого было достаточно, чтобы выгрузить, а затем перезагрузить файл .csproj

Ответ 4

В папке Solution Visual Studio откройте папку "packages" и удалите все, что находится внутри этой папки. Затем восстановите пакеты nuget.