Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье рассматриваются распространенные ошибки при восстановлении пакетов и действиях по их устранению.
Восстановление пакетов пытается установить все зависимости пакетов в верное состояние, соответствующее ссылкам на пакеты в файле проекта (.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
- CLI nuget.exe
- MSBuild
- Azure Pipelines
- Сервер Azure DevOps
После успешного восстановления пакет должен присутствовать в папке глобальных пакетов . Для проектов с помощью 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.
Файл project.assets.json поддерживает граф зависимостей проекта при использовании формата управления PackageReference, который используется для обеспечения установки всех необходимых пакетов на компьютере. Так как этот файл создается динамически путем восстановления пакетов, обычно он не добавляется в систему управления версиями. В результате эта ошибка возникает при сборке проекта с помощью такого средства, как 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%\NuGet\NuGet.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>
Это важно
Если изменить packageRestore параметры непосредственно в nuget.config, перезапустите Visual Studio, чтобы в диалоговом окне параметров отображались текущие значения.
Другие потенциальные условия
Вы можете столкнуться с ошибками сборки из-за отсутствующих файлов, при этом появится сообщение, предлагающее использовать восстановление NuGet для их загрузки. Однако при выполнении восстановления может быть указано: "Все пакеты уже установлены, и восстановление не требуется". В этом случае удалите папку
packages(при использованииpackages.config) илиobj/project.assets.jsonфайл (при использовании PackageReference) и снова запустите восстановление.При получении проекта из системы управления версиями ваши папки проекта могут быть установлены как доступные только для чтения. Измените разрешения папки и повторите попытку восстановления пакетов.
Вы можете использовать старую версию NuGet. Проверьте nuget.org/downloads, чтобы узнать последние рекомендуемые версии. Для Visual Studio 2015 рекомендуется 3.6.0.
Если вы столкнулись с другими проблемами, отправьте проблему на GitHub , чтобы получить дополнительные сведения от вас.