Начните бесплатный 3-дневный пробный период
Зарегистрируйтесь и попробуйте все премиум-функции бесплатно.
*Только для новых пользователей. Один пробный период на пользователя.


Ошибка восстановления NuGet требует проверки первого сообщения и источника, который его сформировал, с разделением обнаружения ресурсов, передачи и авторизации. Сохраните проект, SDK и входные данные: открытый в браузере источник или последующая сборка из кэша не определяют, какое соединение оказалось неисправным.
Ключевые выводы:
- NU1301 начинает диагностику, но не доказывает сетевую причину каждого сбоя.
- Индекс может открываться, когда ресурс пакета на другом хосте недоступен.
- Сохраняйте источники, версии пакетов и существующий файл блокировки.
- Сначала подтвердите восстановление, затем отдельно проверяйте сборку и поведение приложения.
Установите точное решение или проект и способ запуска: Visual Studio, .NET CLI, MSBuild либо другой процесс. Запишите рабочий каталог, версию SDK, ревизию проекта и формат управления пакетами: PackageReference или более старую схему. Разные точки входа могут использовать другие среды и поддерживать разные параметры.[1]
Следующая команда показывает SDK, выбранный текущим окружением CLI. Выполняйте её из каталога исходной неудачной операции; файл выбора SDK проекта способен изменить результат при запуске из другого каталога.
dotnet --version
До изменений сохраните проектные файлы, настройки источников и существующий файл блокировки пакетов. Закрытая заметка должна содержать исходную команду и её параметры. Не удаляйте блокировку, не заменяйте версию пакета и не обновляйте SDK при сравнении соединений: это уже другой эксперимент с зависимостями.
Если недоступны все приложения Windows, начните с ветвей диагностики устройств и приложений. Здесь рассматриваются запросы и настройки NuGet. Используйте только разрешённые проекты и источники; управляемую организацией конфигурацию проверяйте с ответственным администратором.
Прочитайте первое существенное сообщение вместо одного итогового отчёта restore. Сохраните код, идентификатор источника без секретов, операцию и вложенную ошибку. До выбора исправления различите разрешение имени, тайм-аут соединения, ошибку сертификата и ответ HTTP об авторизации.
Индекс V3 представляет JSON-документ, который объявляет клиентские ресурсы. Их URL могут использовать другое имя хоста, поэтому индекс — лишь один этап доступа к метаданным и содержимому пакетов. Его успешное открытие в браузере не доказывает достижимость всех объявленных ресурсов из NuGet.[2]
| Первый сбой | Что он устанавливает | Следующая проверка |
|---|---|---|
| Индекс сервиса не загружается | Обнаружение не завершилось | Вложенная ошибка соединения, TLS или авторизации |
| Индекс работает, метаданные нет | Один endpoint обнаружения доступен | Объявленный ресурс и конкретный пакет |
| Передача содержимого истекает по времени | Достигнут этап загрузки | Endpoint содержимого и маршрут |
| Источник отвечает 401 или 403 | Сервер либо посредник ответил | Аккаунт, credential provider и политика доступа |
| Версия или mapping источника отклонены | Зависимость не разрешается с этой конфигурацией | Идентификатор пакета, разрешённые источники и входные данные |
| Restore успешен, build нет | Загрузка и сборка требуют отдельных выводов | Компилятор, целевая платформа и инструменты |
Отделяйте отсутствие ответа от явного отказа. Если внутренний индекс направляет клиента к другому сервису содержимого, передайте администратору очищенные роли хостов. Не просите исключить всю сеть из ограничений вместо проверки конкретного этапа запроса.
Не публикуйте полный диагностический журнал. Даже когда пароль скрыт в самой ошибке, соседние строки способны содержать частные URL источников, имена пользователей, заголовки и токены. Храните оригинал безопасно и передавайте небольшой очищенный фрагмент людям, ответственным за эту среду.
Локально изучите применимые NuGet.Config, включая настройки репозитория, пользователя и явные аргументы CLI. Установите активные источники, очищается ли наследуемый список и ограничивает ли source mapping конкретный пакет. У dotnet restore явный source может переопределить настроенные feeds, поэтому сравнивайте реальную команду, а не только ожидаемый файл конфигурации.[3]
Не добавляйте зеркало первым действием. Определите предназначенный источник исходного пакета, его владельца и поддерживаемый клиентом способ авторизации. Частный feed может требовать утверждённого credential provider, интерактивного входа или организационных прав, которые браузерная сессия не передаёт CLI автоматически.
IDE и терминал могут выбирать разные SDK, аккаунты, переменные окружения и рабочие каталоги. Сначала повторите диагностику через исходную точку входа, затем сравнивайте другую. Проблема учётных данных IDE и общая невозможность скачать пакет должны оставаться разными выводами.
При подозрении на устаревший личный прокси проверьте настройки Windows и их владельца. Просматривайте только нужное значение, не выводите всё окружение и не раскрывайте секреты. Обязательный корпоративный прокси или CA для проверки TLS настраивайте с администратором, не отключая проверку доверия.
Страница входа feed не является проверкой восстановления пакетов. Через поддерживаемую процедуру клиента убедитесь, что аккаунт вправе получить нужный пакет и версию. Не помещайте токен в командную строку, не заменяйте частный источник nuget.org и не используйте чужие данные для обхода контроля доступа.
Для проекта, который уже использует .NET CLI, повторите ту же команду из того же каталога. Имя ниже — пример: подставьте действующий файл проекта и сохраните первоначальные configuration, runtime, source и другие параметры. Restore загружает пакеты и может обновлять сгенерированные файлы проекта; это не проверка без записи.[3]
dotnet restore ./YourProject.csproj --verbosity minimal
Если действующий процесс поддерживает packages.lock.json, сохраните его и принятую политику блокировки. CLI предлагает --locked-mode, предотвращающий обновление зависимостей. Не вводите новую схему lock-файлов во время сетевого инцидента и не называйте отсутствующий файл доказательством фиксированного набора пакетов.[3]
Остановитесь, если повторная команда теперь сообщает об изменении графа зависимостей или несовместимой конфигурации проекта. Это задача сопровождающего, а не причина многократно менять сеть. Для старого формата или MSBuild restore выберите соответствующую документированную точку входа, не считая этот пример универсальным.[1]
До объяснения успешного результата сетью проверьте, требовалась ли фактическая загрузка. Заполненная глобальная папка пакетов может завершить restore без исходного неудачного запроса. Ищите свидетельство получения ранее отсутствовавшего пакета; не очищайте общий кэш только для создания дополнительного трафика.
Любое изолированное воспроизведение, разрешённое сопровождающим, должно сохранять входные данные и отдельно описывать свой объём и очистку.
При тайм-ауте исходного feed или файла сравните Windows-процесс restore с разрешённым альтернативным маршрутом. Установите официальный пакет AethoVPN для Windows на выполняющую восстановление машину, подключитесь к подходящему расположению в своей стране или поблизости из текущего списка приложения и включите глобальный режим. Повторите неизменную команду проекта, проверяя тот же индекс и ранее неудачный запрос пакета; такой тест не выдаёт права частного feed, не исправляет отсутствующие версии и не обходит проверку подписи пакета.
Если для сравнения нужен аккаунт, создайте его по коду из электронной почты; новым пользователям доступен бесплатный 3-дневный пробный период Pro один раз на пользователя без создания пароля.
Пример Windows не означает, что NuGet работает только на этой платформе. На другой поддерживаемой локальной машине Linux использует .deb для Debian/Ubuntu x64, а конфигурация Mac получается через руководство сайта и требует Pro либо Premium. Изучите условия выбора платформы Linux, не предполагая поддержку других дистрибутивов или архитектур.
Сохраните SDK, проект, feeds, авторизацию и набор пакетов одинаковыми в обеих попытках. Если тайм-аут превратился в 401, отдельно отметьте улучшение достижимости и нерешённый доступ. Успешный restore с исходными feeds ближе к результату задачи, чем открытый индекс в браузере, но использование кэша ограничивает доказательство передачи.
Проверки туннеля перед восстановлением NuGet используйте только как вспомогательную диагностику. Удалённый runner, контейнер или облачная сборка отправляют запросы из другой среды; подтвердите их маршрут самостоятельно. Если сравнение ничего не меняет, прекратите смену расположений и вернитесь к ветви источника, доверия или авторизации, указанной ошибкой.
Убедитесь, что исходный проект восстанавливает ожидаемые пакеты из разрешённых источников, сохраняя lock-политику и проверки целостности. Сохраните свидетельство получения первоначально проблемного пакета, затем отдельно оцените обычную сборку. Ошибка компилятора или целевого framework после restore — новый этап, а не доказательство прежнего сетевого сбоя.
Сравните конфигурацию и файлы проекта с сохранёнными копиями. Оставьте только намеренное разрешённое исправление, уберите временные личные overrides и проверьте отсутствие незаметной замены источника или версии. Честно укажите кэш, если успешная команда не скачала отсутствовавший пакет.
Для обращения подготовьте SDK, точку входа клиента, имя и версию пакета, очищенную роль источника, первую ошибку и результат сравнения с фиксированными входными данными. Частные URL и учётные данные не входят в публичный отчёт. Если сбоит Maven-часть проекта, отдельно проследите выбор репозитория и прокси Maven: его система настройки другая.
Код NU1301 указывает на сбой загрузки индекса, но причину определяет вложенная ошибка. Проверяйте соединение, TLS и авторизацию, не считая VPN универсальным исправлением любого такого сообщения.
IDE и CLI могут различаться SDK, каталогом, учётными данными и окружением процесса. Сравните эти входные условия и первоначальную точку отказа до вывода о недоступности самого feed.
Индекс объявляет отдельные ресурсы, иногда на другом хосте. Клиенту ещё нужны endpoints метаданных и содержимого, поэтому доступный индекс не подтверждает передачу пакета.[2]
Сохраните частный источник, если проекту нужны его пакеты и права. Подмена меняет эксперимент и может нарушать политику источников; авторизацию решайте с администратором feed.
Сохраните существующий lock-файл и политику restore. Удаление разрешает новый граф зависимостей, поэтому успешный результат уже не проверяет соединение для исходного фиксированного набора.
Не начинайте с очистки общих кэшей. Выясните, нужен ли неудачный запрос, сохраните свидетельства и используйте согласованное точечное воспроизведение, только если кэш мешает диагностике.
Restore делает зависимости доступными, но сборка дополнительно требует подходящего framework, кода и инструментов. Зафиксируйте загрузку отдельно и разберите первую ошибку сборки без повторных ненужных изменений сети.
Отказ от ответственности: Соблюдайте местное законодательство, условия сервиса и организационную политику. Используйте только собственные или разрешённые проекты и feeds; инструкции не являются результатами измерений.
Атрибуция обложки: Логотип NuGet, Microsoft / NuGet contributors; CC BY 2.0. Исходный логотип сохранён, пропорционально масштабирован и размещён на белом фоне; изображение преобразовано в WebP. Он обозначает тему статьи и не подразумевает одобрения правообладателем.
Sources checked 6 октября 2026 г.
Зарегистрируйтесь и попробуйте все премиум-функции бесплатно.
*Только для новых пользователей. Один пробный период на пользователя.





