Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Note
dotnetup находится в общедоступной предварительной версии. Его функции и поведение могут измениться до общедоступного выпуска.
В этой статье описываются распространенные dotnetup проблемы и способы их устранения.
Сбор диагностических сведений
Перед устранением неполадок соберите следующие сведения:
Показать
dotnetupверсию, архитектуру, идентификатор среды выполнения и проверенные установки:dotnetup --infoОтобразите отслеживаемые спецификации установки и установки, а также проверьте файлы на диске:
dotnetup listСравните сохранённую конфигурацию среды с текущей средой:
dotnetup env showСнова выполните команду, которая завершилась с ошибкой, с подробными выходными данными. Рассмотрим пример.
dotnetup sdk install 10.0 --verbosity detailed
Проекты не собираются или приложения не начинаются после установки
Симптом: После настройки dotnetup в режиме everywhere на Windows проекты, которые раньше собирались, теперь не удаётся собрать. Кроме того, приложения, зависящие от платформы, показывают эту ошибку:
You must install or update .NET to run this application.
Причина: В everywhere режиме установка, управляемая dotnetup, имеет приоритет над установкой на уровне компьютера в Program Files. Пакеты SDK и среды выполнения, которые существуют только в установке на уровне компьютера, недоступны.
Решение: Перенесите пакеты SDK на уровне компьютера и среды выполнения в установку, управляемую dotnetup:
dotnetup sdk install --migrate-from-system
dotnetup runtime install --migrate-from-system
Или переключитесь в режим доступа none или shell. Дополнительные сведения см. в особенностях режима Everywhere.
dotnet не использует установку, управляемую dotnetup
Симптом: Команда dotnet в терминале не использует SDK, установленные с помощью dotnetup.
Причина: Терминал был открыт до того, как dotnetup изменил среду, или конфигурация среды не соответствует сохранённой конфигурации.
Solution:
Откройте новый терминал. Изменения профиля оболочки или Windows переменных среды не влияют на открытые терминалы.
Выполните команду
dotnetup env show. Если он сообщает о дрейфе, запуститеdotnetup env set, чтобы применить хранимую конфигурацию еще раз.Чтобы настроить только текущий терминал, выполните вывод команды
dotnetup env script. Например, в Bash или zsh:eval "$(dotnetup env script)"В PowerShell:
dotnetup env script --shell pwsh | Invoke-Expression
Дополнительные сведения см. в разделе "Управление средой dotnetup".
Путь установки уже содержит неотслеживаемую установку
Симптом: Команда установки завершается ошибкой с этой ошибкой:
The install path '<path>' already contains a .NET installation that is not tracked by dotnetup. To avoid conflicts, use a different install path, remove the existing installation first, or use the --untracked option to install without tracking.
Причина:dotnetup не устанавливает отслеживаемые файлы в папку, содержащую каталог с установленной .NET, который dotnetup не отслеживает. Эта проверка предотвращает смешивание файлов dotnetup с файлами, принадлежащими другому инструменту.
Решение: Выполните одно из следующих действий:
- Выберите другую папку с помощью параметра
--install-path. - Удалите существующую установку из папки.
- Если другой инструмент владеет папкой, используйте параметр
--untracked.dotnetupне выводит список, не обновляет и не удаляет неуправляемые файлы.
Дополнительные сведения см. в разделе Управление пользовательскими корнями установки.
Исполняемый файл dotnet уже используется
Симптом: В Windows команда установки отображает предупреждение, аналогичное этому сообщению:
Warning: Could not update dotnet executable at '<path>' - it is currently in use by another process. Close all running .NET applications and try again. The existing muxer will be retained. ...
Причина: Выполняющийся процесс использует исполняемый файл dotnet, поэтому dotnetup не может заменить его. Установка продолжается с существующим dotnet исполняемым файлом.
Для новой среды выполнения может потребоваться новый dotnet исполняемый файл.
Решение: Закройте все запущенные приложения .NET, IDE и серверы сборки. Затем снова выполните команду установки. Чтобы команда завершилась с ошибкой вместо продолжения с предупреждением, используйте опцию --require-muxer-update.
Выполняется еще один процесс dotnetup
Симптом: Команда показывает это сообщение и ожидает:
Another dotnetup process is running. Waiting for it to finish...
Причина:dotnetup выполняется сериализация изменений в общем состоянии установки. Другая dotnetup команда изменяет то же состояние.
Решение: Дождитесь завершения другой команды. Если никакие другие dotnetup процессы не выполняются, найдите dotnetup процессы, которые перестали отвечать, и завершите их.
Манифест поврежден
Симптом: Команда завершается сбоем с этой ошибкой:
The dotnetup manifest at <path> is corrupt. Consider deleting it and re-running the install.
В сообщении также может быть указано, что файл был изменен вне dotnetup.
Причина: Файл dotnetup_manifest.json недействителен. Другой процесс или редактирование вручную, возможно, изменили файл.
Решение: Удалите файл манифеста и его .sha256 файл из каталога данных dotnetup. Затем переустановите необходимые пакеты SDK и среды выполнения. Так как манифест больше не отслеживает существующий корневой каталог установки, может потребоваться сначала удалить эту папку. Сведения о расположении каталога данных см. в разделе Update or remove dotnetup.
Note
Не изменяйте файл манифеста. Используйте команды dotnetup для изменения отслеживаемого состояния.
Файл конфигурации поврежден
Симптом: Команда показывает следующее предупреждение:
Warning: The dotnetup config file at <path> appears to be corrupted and could not be read: ...
Причина: Файл dotnetup.config.json недействителен.
dotnetup игнорирует файл.
Решение: Запустите dotnetup env set с нужным режимом доступа или снова запустите dotnetup init. Эти команды записывают новую конфигурацию.
Профиль оболочки содержит неправильный блок dotnetup
Симптом: Команда env завершается ошибкой, аналогичной этому сообщению:
The shell profile '<path>' contains a malformed dotnetup block: '<begin marker>' does not have a matching '<end marker>'. Remove or repair the block manually and try again.
Причина:dotnetup помечает строки, добавляемые в профиль оболочки, начальными и конечными комментариями. Один из этих комментариев отсутствует.
Решение: Откройте профиль оболочки в текстовом редакторе. Удалите неполный блок dotnetup или добавьте отсутствующий маркер. Затем снова выполните команду.
Запрос на повышение привилегий отменен
Симптом: В Windows команда, которая включает или выключает режим everywhere, показывает это сообщение:
Elevation was cancelled. The system PATH was not modified.
Причина: Изменения в системе PATH требуют повышения прав. Запрос контроля учетных записей пользователей (UAC) был отменен.
Решение: Выполните команду еще раз и подтвердите запрос UAC. Или выберите shell режим доступа или none режим доступа, который не требует повышения привилегий.
Истек срок действия манифеста выпуска
Симптом: Установка или обновление завершается ошибкой во время проверки release-manifest с кодом ошибки ExpiredNow.
Причина: Текущее системное время совпадает со временем истечения срока действия манифеста или позже него. Манифест может быть просрочен, или системные часы могут быть неверными. Действительная подпись не делает просроченный манифест допустимым.
Solution:
- Проверьте дату и время системы. При необходимости исправьте часы.
- Повторите команду. Если прокси-сервер обслуживает кэшированные метаданные выпуска, попросите администратора проверить, обслуживает ли он просроченный манифест.
- Если часы верны, а сбой сохраняется, сообщите о проблеме с подробными выходными данными команды.
Не изменяйте манифест или не меняйте часы, чтобы обойти проверки срока действия. Дополнительные сведения см. в разделе Срок действия манифеста.
Установка блокируется ИТ-политикой
Симптом: Установка ежедневной или предварительной сборки завершается сбоем с сообщением о том, что ИТ-политика требует загрузки, подписанные цифровой подписью.
Причина: Администратор заблокировал скачивание неподписанных файлов на компьютере.
Решение: Установите стабильную версию или попросите администратора очистить политику. Дополнительные сведения см. в разделе Как dotnetup проверяет загрузки.
Сообщите о проблеме
Если эта статья не решает вашу проблему, выполните поиск существующих проблем dotnetup.
Если вы не нашли совпадение, откройте новую проблему в репозитории dotnet/sdk с шаблоном проблемы dotnetup. Включите выходные данные dotnetup --info и выходные данные неудачной команды --verbosity detailed.
Для вопросов и предложений используйте обсуждения dotnetup.