| title | description | author | ms.author | ms.date | ms.topic | ms.openlocfilehash | ms.sourcegitcommit | ms.translationtype | ms.contentlocale | ms.lasthandoff | ms.locfileid |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
Устранение неполадок с восстановлением пакетов NuGet в Visual Studio |
Описание распространенных ошибок восстановления NuGet в Visual Studio и способов их устранения. |
JonDouglas |
jodou |
05/25/2018 |
conceptual |
0bd14104695a15d2e4c65a13b271143809c4ba8a |
f3d98c23408a4a1c01ea92fc45493fa7bd97c3ee |
HT |
ru-RU |
06/17/2021 |
112323626 |
Устранение ошибок при восстановлении пакетов
Эта статья посвящена распространенным ошибкам, возникающим при восстановлении пакетов, и мерам по их устранению.
Функция восстановления пакетов пытается установить все зависимости пакетов в правильном состоянии с учетом ссылок на пакет в файле проекта ( .csproj) или файле packages.config. (В Visual Studio ссылки отображаются в обозревателе решений в узле Зависимости NuGet или Ссылки.) См. о восстановлении пакетов. Если пакет ссылается на файл проекта( .csproj) или если файл packages.config неправильный (не соответствует требуемому состоянию после восстановления пакета), необходимо установить или обновить пакеты. Не используйте вместо этого функцию восстановления пакетов.
Если приведенные здесь инструкции не работают, сообщите о проблеме на GitHub, чтобы мы могли тщательнее изучить ваш случай. Не используйте элемент управления «Была ли эта страница полезной?», который может отображаться на этой странице, так как это не позволяет нам связаться с вами для получения дополнительной информации.
Быстрое решение для пользователей Visual Studio
Если вы используете Visual Studio, сначала включите восстановление пакета, как описано ниже. В противном случае перейдите к приведенным далее разделам.
- Выберите команду Сервис > Диспетчер пакетов NuGet > Параметры диспетчера пакетов.
- Задайте оба параметра в разделе Восстановление пакета.
- Нажмите кнопку ОК.
- Повторите сборку проекта.

Эти параметры также можно изменить в файле NuGet.Config; см раздел о согласии. Для достаточно ранних проектов, использующих встроенную в MSBuild функцию восстановление пакетов, возможно, потребуется перейти на автоматическое восстановление пакетов.
Данный проект ссылается на пакеты NuGet, отсутствующие на этом компьютере
Полное сообщение об ошибке.
This project references NuGet package(s) that are missing on this computer.
Use NuGet Package Restore to download them. The missing file is {name}.
Эта ошибка возникает при попытке выполнить сборку проекта, содержащего ссылки на один или несколько пакетов NuGet, которые сейчас не установлены на компьютере или в проекте.
- При использовании формата управления PackageReference эта ошибка может быть следствием миграции packages.config в PackageReference, и это необходимо вручную удалить из файла проекта.
- Если используется файл packages.config эта ошибка означает, что пакет не установлен в папке
packagesв корне решения.
Обычно такая ситуация возникает при получении исходного кода проекта из системы управления версиями или другого скачанного файла. Пакеты обычно исключаются из системы управления версиями или скачиваемых файлов, так как их можно восстановить из веб-каналов пакета, например nuget.org (см. раздел Пакеты и система управления версиями). Их включение приведет к раздуванию репозитория или созданию слишком больших ZIP-файлов.
Эта ошибка также может возникнуть, если файл проекта содержит абсолютные пути для расположений пакетов и вы перемещаете этот проект.
Для восстановления пакетов используйте один из следующих методов.
- После перемещения файла проекта отредактируйте его напрямую, чтобы обновить ссылки на пакеты.
- Visual Studio (автоматическое восстановление или восстановление вручную)
- dotnet CLI
- Интерфейс командной строки nuget.exe
- MSBuild
- Azure Pipelines
- Azure DevOps Server
После восстановления пакет должен присутствовать в папке global-packages. В проектах, использующих формат PackageReference, в процессе восстановления повторно создается файл obj/project.assets.json, а в проектах, использующих файл packages.config, пакет должен появиться в папке packages. Теперь сборка проекта должна пройти без ошибок. В противном случае сообщите о проблеме на GitHub, чтобы мы могли связаться с вами.
Файл ресурсов project.assets.json не найден
Полное сообщение об ошибке.
Assets file '<path>project.assets.json' not found. Run a NuGet package restore to generate this file.
Если используется формат управления PackageReference, который проверяет, установлены ли на компьютере все необходимые пакеты, в файле project.assets.json определена схема зависимостей проекта. Этот файл создается динамически во время восстановления пакета. Поэтому он обычно не добавляется в систему управления версиями. В результате эта ошибка возникает при попытке выполнить сборку проекта с помощью такого средства, как msbuild, которое не восстанавливает пакеты автоматически.
В этом случае запустите msbuild -t:restore и затем msbuild или используйте dotnet build (при этом пакеты восстанавливаются автоматически). Кроме того, вы можете использовать любой из методов восстановления пакетов, описанных в предыдущем разделе.
Необходимо восстановить один пакет NuGet или несколько, но это не удалось выполнить, так как не было получено согласие
Полное сообщение об ошибке.
One or more NuGet packages need to be restored but couldn't be because consent has
not been granted. To give consent, open the Visual Studio Options dialog, click on
the NuGet Package Manager node and check 'Allow NuGet to download missing packages
during build.' You can also give consent by setting the environment variable
'EnableNuGetPackageRestore' to 'true'. Missing packages: {name}
Эта ошибка означает, что восстановление пакета отключено в конфигурации NuGet.
Вы можете изменить подходящие параметры в Visual Studio, как описано выше в разделе Быстрое решение для пользователей Visual Studio.
Можно также изменить эти параметры напрямую в соответствующем файле nuget.config (обычно это %AppData%NuGetNuGet.Config в Windows и ~/.nuget/NuGet/NuGet.Config в Mac и Linux). Убедитесь, что для ключей enabled и automatic в разделе packageRestore задано значение True.
<!-- Package restore is enabled --> <configuration> <packageRestore> <add key="enabled" value="True" /> <add key="automatic" value="True" /> </packageRestore> </configuration>
[!Important]
При изменении параметровpackageRestoreпрямо вnuget.configнужно перезапустить Visual Studio, чтобы диалоговое окно параметров отображало текущие значения.
Другие потенциальные условия
-
Могут возникнуть ошибки сборки, связанные с отсутствием файлов и указывающие, что для их скачивания следует использовать NuGet restore. Но при выполнении команды restore может появиться сообщение «Все пакеты уже установлены, и элементы для восстановления отсутствуют». В этом случае удалите папку
packages(при использованииpackages.config) или файлobj/project.assets.json(при использовании PackageReference) и запустите restore еще раз. Если это не помогло решить проблему, очистите папку global-packages и кэш, выполнив в окне командной строки командуnuget locals all -clearилиdotnet nuget locals all --clear. Дополнительные сведения см. в статье Управление папкой установки глобальных пакетов, кэшем и временными папками. -
При получении проекта из системы управления версиями папки вашего проекта могут быть сделаны доступными только для чтения. Измените разрешения для папок и попробуйте восстановить пакеты еще раз.
-
Возможно, вы используете старую версию NuGet. Ознакомьтесь с последними рекомендуемыми версиями на странице nuget.org/downloads. Для Visual Studio 2015 рекомендуется версия 3.6.0.
При возникновении других проблем сообщите о них на GitHub, чтобы мы могли получить у вас дополнительные сведения.
При попытке восстановить пакеты произошла ошибка. Пожалуйста, попробуйте еще раз
Я пытаюсь восстановить отсутствующие пакеты nuget, и он продолжает давать мне эту ошибку:
An error occurred while trying to restore packages. Please try again.
любой опыт решения этого?
Как я могу узнать, что именно вызывает ошибку?
7 ответов
Если вы не хотите, чтобы пакет, просто дважды щелкните пакеты.config, найдите строку, которая относится к пакету, от которого вы хотите избавиться, и удалите эту строку.
тогда, если вы хотите пакет, вы, вероятно, могли бы просто перезагрузить его с помощью nuget, и он, вероятно, разрешится сам.
вот как я исправляю свою проблему:
сначала я очищаю свой источник пакета:

затем во-вторых, убедитесь, что у меня есть правильный источник пути и нажмите доступный источник пакета:

У меня была аналогичная проблема с Microsoft.Bcl.Build.1.0.14 пакета NuGet. Моим решением было
- Закрыть Visual Studio
- удалите папку пакета с помощью проводника (или лучше просто переместите ее в другое место)
- Запустите Visual Studio
- перейдите в Диспетчер пакетов NuGet и нажмите Восстановить
(наверняка новичку ответ здесь, но я оставлю его, так как я не нашел этого нигде.) Убедитесь, что nuget.org не был снят флажок с источников пакета.
инструменты. Опции. Менеджер пакетов Nuget. Источник пакета. Проверено обеспечения «nuget.org» это.
для меня я клонировал решение (vs2015 / NuGet3.4) который имел зависимость nuget от пакета предварительного выпуска, который был заменен. Nuget не удалось восстановить предварительный выпуск и не позволил мне удалить или обновить его. Я холодильник вручную editting пакеты.config для целевого более старого не-предварительного выпуска пакета, который я мог бы затем обновить до версии, которую я хотел. HTH
«An error occurred while trying to restore packages: Unable to find version ‘3.0.3.1’ of package’Lucene.Net.Core’.»
When I use the packages sources which you provided, I found that only two versions (4.8.0 & 4.9.0) of package»Lucene.Net.Core» not have the version ‘3.0.3.1’.
Pay Attention:
I noticed that the author of this package have updated this package at March 11, 2017(3/11/2017), and only release the version 4.8.0 & 4.9.0. So this must be the reason for NuGet restore failed.

Besides, you said:
I have a solution which I can use that is by the same name as this
package, but VS refuses to let me updates, remove, or change ANYTHING
related to these packages
If you want to remove those error packages, you can try to use below command to force uninstall those packages:
Uninstall-Package Lucene.Net.Core -Force
Or you can delete this package from the package folder and delete the package list from the package.config.
Then install the correct version of the packages.
«An error occurred while trying to restore packages: Unable to find version ‘3.0.3.1’ of package’Lucene.Net.Core’.»
When I use the packages sources which you provided, I found that only two versions (4.8.0 & 4.9.0) of package»Lucene.Net.Core» not have the version ‘3.0.3.1’.
Pay Attention:
I noticed that the author of this package have updated this package at March 11, 2017(3/11/2017), and only release the version 4.8.0 & 4.9.0. So this must be the reason for NuGet restore failed.

Besides, you said:
I have a solution which I can use that is by the same name as this
package, but VS refuses to let me updates, remove, or change ANYTHING
related to these packages
If you want to remove those error packages, you can try to use below command to force uninstall those packages:
Uninstall-Package Lucene.Net.Core -Force
Or you can delete this package from the package folder and delete the package list from the package.config.
Then install the correct version of the packages.
Я пытаюсь восстановить отсутствующие пакеты nuget, и он продолжает давать мне эту ошибку:
An error occurred while trying to restore packages. Please try again.
Есть ли опыт решения этой проблемы? Как я могу узнать, что именно вызывает ошибку?
12 ответов
Лучший ответ
У меня была аналогичная проблема с пакетом NuGet Microsoft.Bcl.Build.1.0.14. Моим решением было
- Закройте Visual Studio
- Удалите папку пакета с помощью проводника (а лучше просто переместите его в другое место)
- Запустить Visual Studio
- Перейдите в диспетчер пакетов NuGet и нажмите Восстановить.
10
testing
23 Ноя 2016 в 15:18
У меня была аналогичная проблема, я узнал, что это связано с моим кешем nuget.
Команда для очистки кеша : dotnet nuget locals all --clear
После очистки кеша попробуйте восстановить.
1
Shrivallabh
23 Мар 2021 в 08:48
Перейдите в ИНСТРУМЕНТЫ в разделе ОПЦИИ и выберите Диспетчер пакетов NuGet.
- Общие, Выбрать все
- Источник пакета, выберите все необходимые источники
Нажмите ОК. Готово, вы должны быть в порядке.
-2
GSKKC
30 Июл 2019 в 14:09
Если вам не нужен пакет, просто дважды щелкните файл packages.config, найдите строку, которая относится к пакету, от которого вы хотите избавиться, и удалите эту строку.
Затем, если вам действительно нужен пакет, вы, вероятно, можете просто повторно загрузить его с помощью nuget, и он, вероятно, разрешится сам.
10
Jared Beach
12 Авг 2014 в 22:13
Вот как я исправляю свою проблему:
Сначала я очищаю свой кеш пакетов:

Во-вторых, я убеждаюсь, что у меня есть правильный путь к источнику, и щелкаю доступный источник пакета:

29
Timothee Howland
16 Июл 2020 в 11:05
(Определенно ответ новичка здесь, но я оставлю его, так как нигде больше не нашел.) Убедитесь, что nuget.org не был снят в исходных кодах вашего пакета.
Инструменты. Параметры. Диспетчер пакетов Nuget. Источники пакетов. Убедитесь, что «nuget.org» отмечен.
2
Patrick
26 Янв 2017 в 02:13
Для меня я клонировал решение (vs2015 / NuGet3.4), которое зависело от NuGet от предварительно выпущенного пакета, который был заменен. Nuget не удалось восстановить предварительную версию и не разрешил мне ни удалить, ни обновить его. Я испортил его, вручную отредактировав packages.config, чтобы настроить таргетинг на более старую версию пакета, не являющуюся предварительным выпуском, которую я мог затем обновить до нужной мне версии. HTH
0
timB33
10 Мар 2017 в 14:16
На всякий случай, если это поможет кому-то другому, у меня была эта проблема в проекте .NET Standard, где я неправильно определил целевые фреймворки:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard1.3;netstandard2.0;net45</TargetFramework>
</PropertyGroup>
...
Когда это должно быть множественное число TargetFrameworks (а не TargetFramework):
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard1.3;netstandard2.0;net45</TargetFrameworks>
</PropertyGroup>
...
0
TheCrimsonSpace
8 Фев 2019 в 15:08
Для меня ничего из упомянутого выше не работает. Я решил эту проблему, удалив packages.config в каждом проекте своего решения, а затем переустановив все пакеты Nuget.
0
ssamko
16 Окт 2021 в 09:26
Я исправляю эту проблему, перемещая папку проекта в другую с меньшим количеством символов (локальный путь был слишком длинным), надеюсь, это поможет кому-то
1
elblogdelbeto
28 Сен 2021 в 21:49
|
8 / 8 / 1 Регистрация: 12.04.2015 Сообщений: 236 Записей в блоге: 2 |
|
|
1 |
|
|
23.12.2015, 13:30. Показов 20496. Ответов 8
вот такая ошибка вылазит:
что делать?
__________________
0 |
|
6268 / 3896 / 1567 Регистрация: 09.05.2015 Сообщений: 9,187 |
|
|
23.12.2015, 18:54 |
2 |
|
Ну так удалите ссылку на пакет nuget из проэкта если сами вручную библиотеки добавляли.
0 |
|
8 / 8 / 1 Регистрация: 12.04.2015 Сообщений: 236 Записей в блоге: 2 |
|
|
23.12.2015, 23:04 [ТС] |
3 |
|
Someone007, удаление ссылок где? скажите точно. По тому что я ссылки удалял, но ничего не изменилось, вероятно это были не те ссылки
0 |
|
8 / 8 / 1 Регистрация: 12.04.2015 Сообщений: 236 Записей в блоге: 2 |
|
|
24.12.2015, 18:09 [ТС] |
4 |
|
0 |
|
8 / 8 / 1 Регистрация: 12.04.2015 Сообщений: 236 Записей в блоге: 2 |
|
|
24.12.2015, 18:18 [ТС] |
5 |
|
Someone007, ну нету там ссылки на system.data.sqlite. а ошибка все еще есть (на скрине вверху)
0 |
|
8 / 8 / 1 Регистрация: 12.04.2015 Сообщений: 236 Записей в блоге: 2 |
|
|
24.12.2015, 18:22 [ТС] |
6 |
|
вот все что установлено через nuget
0 |
|
8 / 8 / 1 Регистрация: 12.04.2015 Сообщений: 236 Записей в блоге: 2 |
|
|
24.12.2015, 19:28 [ТС] |
7 |
|
а самое странное, так это то что этот файл в этой папке есть
0 |
|
6268 / 3896 / 1567 Регистрация: 09.05.2015 Сообщений: 9,187 |
|
|
24.12.2015, 20:37 |
8 |
|
РешениеОткройте текстовым редактором файл проекта (csproj), указанный в сообщении об ошибке и поищите в нем ссылку на отсутствующий файл. Ну и в packages.config тоже посмотрите.
3 |
|
danyasworld 8 / 8 / 1 Регистрация: 12.04.2015 Сообщений: 236 Записей в блоге: 2 |
||||
|
24.12.2015, 21:33 [ТС] |
9 |
|||
|
Someone007, да, спасибо. Не знал, что csproj xml файл, а вот собственно строчка
прям все это убрал и проект заработал
2 |
«При попытке восстановить пакеты произошла ошибка: не удалось найти версию» 3.0.3.1 «пакета» Lucene.Net.Core «.»
Когда я использую источники пакетов, которые вы предоставили, я обнаружил, что только две версии (4.8.0 и 4.9.0) пакета «Lucene.Net.Core» не имеют версии «3.0.3.1».
Обращать внимание:
Я заметил, что автор этого пакета обновил этот пакет 11 марта 2017 года (3/11/2017) и выпустил только версию 4.8.0 и 4.9.0. Поэтому это должно быть причиной неудачного восстановления NuGet.

Кроме того, вы сказали:
У меня есть решение, которое я могу использовать, это то же имя, что и этот пакет, но VS отказывается разрешить мне обновлять, удалять или изменять НИЧЕГО, связанное с этими пакетами
Если вы хотите удалить эти пакеты ошибок, попробуйте использовать команду ниже, чтобы принудительно удалить эти пакеты:
Uninstall-Package Lucene.Net.Core -Force
Или вы можете удалить этот пакет из папки пакета и удалить список пакетов из package.config.
Затем установите правильную версию пакетов.

Сообщение было отмечено danyasworld как решение
