Не удалось восстановить пакет NuGet для проекта. Прочие файлы: значение не может быть нулевым или пустой строкой. Имя параметра: root. 0 0

89

У меня такая ошибка в vs 2012: Не удалось восстановить пакет NuGet для проекта. Прочие файлы: значение не может быть нулевым или пустой строкой. Имя параметра: root. 0 0

Я вижу, что это ошибка https://nuget.codeplex.com/workitem/3780, которая была исправлена ​​в версии 2.8. Но я не могу найти версию 2.8 на https://nuget.codeplex.com. Можно ли исправить ошибка без установки версии 2.8? Или как получить 2.8?

Полуночный гость
источник
1
Я не уверен в деталях, но это также может произойти, если вы попытаетесь использовать имя выходного файла с помощью макросов, например $ (SolutionDir) $ (Configuration) \ MyInstaller.msi. Я столкнулся с этой проблемой при попытке построить VS Установщик и я предположили, что могу использовать макросы в выходном имени файла.
ryancwarren
Мой коллега получил это с VS 2013 (простой, без обновления 1 или обновления 2), и он использует 2.7.x NuGet. Он сейчас обновит.
Csaba Toth

Ответы:

153

Я исправил это, удалив файл параметров пользователя решения Visual Studio (.suo), а затем перезапустив VS.

ОБНОВЛЕНИЕ: для VS 2017 вам нужно удалить скрытую папку с именем .vs, расположенную в каталоге решения (спасибо @Tien Dinh!)

st78
источник
У меня было два файла suo: <solutionName> .suo и <solutionName> .v11.suo Я использую VS2012 Professional Update 3, и удаление обоих сработало для меня. Теперь у меня есть только файл <solutionName> .v11.suo.
Fellmeister
2
для VS2017 просто удалите скрытую папку с именем .vs
Тьен Динь
1
Скрытая папка .vs находится в каталоге решения.
JDawg
Также работал с Visual Studio 2017 Community Edition. Спасибо (y)
Najeeb
27

Была такая же проблема с VS2013 сегодня. После запуска обновления установленных пакетов (инструменты -> расширения и обновления) (включая nuget) и установки некоторых обновлений для VS2013 (некоторые из них были в обновлении Windows) он исчез.

В общем, проверьте наличие этих обновлений, обновлений, и это может решить проблему.

Ноктис
источник
15

У меня VS 2013. По словам менеджера расширений, nuget обновлен.

Выполните ручную установку с сайта vsix: http://visualstudiogallery.msdn.microsoft.com/4ec1526c-4a8c-4a84-b702-b21a8f5293ca

... исправил проблему.

ИнквизиторДжакс
источник
Это устранило проблему для меня. Я столкнулся с проблемой только при сборке в Release.
ctorx 06
Эта проблема возникла из ниоткуда, буквально из-за отсутствия последних решений и бум. Та же проблема, что диспетчер расширений заблокирован и сказал, что он обновлен, когда это не так. Я люблю Microsoft, но серьезно не понимаю, почему они так ужасны при установке программного обеспечения.
Крис Марисич
11

Простой перезапуск Visual Studio должен все прояснить. У меня была такая же проблема в VS2013 после обновления веб-API. Удалять .suo не было необходимости.

Эрик
источник
4

Я исправил это, включив автоматическое восстановление пакетов nuget в решении.

Смита Полури
источник
3

Не точный ответ, но насколько я могу судить, NuGet ver. Версия 2.8 пока недоступна. Я занимаюсь той же проблемой уже некоторое время (2 месяца). Я все еще смог успешно построить свое решение даже с этой ошибкой, выполнив сборку для основного проекта. Я действительно надеюсь решить эту проблему, потому что это серьезно бьет по глазу при работе.

user2476190
источник
2

Я исправил эту проблему после нажатия кнопки «Очистить все кеши Nuget».

Инструменты Nuget -> Очистить весь кеш

Гленокс Андал
источник
1

Просто краткое примечание. Я получил эту ошибку, запустив проект на подключенном сетевом диске , т.е. T:\NetworkFolder\Project\Solution.sln.

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

Крабовое ведро
источник
1

Ни один из приведенных выше ответов не помог мне, и это сильно расстраивало.

Что сработало для меня (с Visual Studio Professional 2017, версия 15.8.5), так это следующие шаги;

1) Инструменты> Параметры> Диспетчер пакетов NuGet> Нажмите "Очистить все кеши NuGet".

Надеюсь, это кому-то поможет!

IfElseTryCatch
источник
0

У меня не получилось. Мне пришлось перейти к инструментам, диспетчеру расширений ... Удалить NuGet Перезагрузить Visual Studio 2010 Загрузить NuGet Переустановить. Перезапустите Visual Studio. Исправлено все!

user2343577
источник
0

Давайте проверим названия пакетов в файле packages.config. Иногда имя неверное, это происходит

Tailmse02457
источник
0

Я получил эту ошибку, случайно переименовав один из атрибутов идентификатора пространства имен в файле packages.config во что-то другое. Я смог отследить это, сравнив проверенную версию packages.config с моей локальной. После того, как я исправил проблему, все, что мне нужно было сделать, это закрыть файл packages.config, выполнить пересборку, и проблема исчезла.

Вечный21
источник
0

В Visual Studio 2015:

Перейдите в Параметры-> Диспетчер пакетов NuGet-> Источники пакетов, убедитесь, что «Microsoft и .Net» отмечены в списке пакетов для всей машины.

Дэвид Дж.
источник
0

Я удалил и переустановил nUnit 3.7.1, и все снова заработало. У меня есть несколько пакетов nuget, но nunit 3.7.1 - единственный, который я переустановил, остальные я оставил в покое.

BClaydon
источник