Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описываются некоторые распространенные причины и возможные решения для сбоев запуска приложений. Он относится к приложениям, зависящим от платформы, которые полагаются на установку .NET на компьютере.
Если вы уже знаете, какая версия .NET вам нужна, вы можете скачать ее на странице загрузок .NET.
Установка .NET не найдена
Если установка .NET не найдена, приложение не может запуститься с сообщением, похожим на следующее:
You must install .NET to run this application.
App: C:\repos\myapp\myapp.exe
Architecture: x64
Host version: 7.0.0
.NET location: Not found
You must install .NET to run this application.
App: /home/user/repos/myapp/myapp
Architecture: x64
Host version: 7.0.0
.NET location: Not found
Это может быть связано с сочетанием пакетов.
Установки на глобальном уровне регистрируются в /etc/dotnet/install_location. В некоторых системах файлы, относящиеся к архитектуре, также присутствуют, например /etc/dotnet/install_location_arm64.
You must install .NET to run this application.
App: /home/user/repos/myapp/myapp
Architecture: x64
Host version: 7.0.0
.NET location: Not found
Глобальные установки зарегистрированы в /etc/dotnet/install_location. В некоторых системах файлы, относящиеся к архитектуре, также присутствуют, например /etc/dotnet/install_location_arm64.
Сообщение об ошибке содержит ссылку на скачивание .NET. Чтобы перейти на соответствующую страницу загрузки, вы можете следовать этой ссылке. Вы также можете выбрать версию .NET (указанную в ) Host versionиз скачиваемых файлов .NET.
На странице загрузки требуемой версии .NET найдите скачивание среды выполнения .NET , соответствующее архитектуре, указанной в сообщении об ошибке. Затем его можно установить, скачав и запустив установщик.
Платформа .NET доступна через различные диспетчеры пакетов Linux. Дополнительные сведения см. в разделе "Установка .NET в Linux". (Предварительные версии .NET обычно недоступны через диспетчеры пакетов.)
Необходимо установить пакет среды выполнения .NET для соответствующей версии, например dotnet-runtime-10.0.
Кроме того, на странице загрузки для требуемой версии .NET можно скачать двоичные файлы для указанной архитектуры.
Не найденная требуемая платформа
Если требуемая платформа или совместимая версия не найдена, приложение не сможет запустить сообщение, аналогичное следующему:
You must install or update .NET to run this application.
App: C:\repos\myapp\myapp.exe
Architecture: x64
Framework: 'Microsoft.NETCore.App', version '5.0.15' (x64)
.NET location: C:\Program Files\dotnet\
The following frameworks were found:
6.0.2 at [c:\Program Files\dotnet\shared\Microsoft.NETCore.App]
You must install or update .NET to run this application.
App: /home/user/repos/myapp/myapp
Architecture: x64
Framework: 'Microsoft.NETCore.App', version '5.0.15' (x64)
.NET location: /usr/share/dotnet/
The following frameworks were found:
6.0.2 at [/usr/share/dotnet/shared/Microsoft.NETCore.App]
You must install or update .NET to run this application.
App: /home/user/repos/myapp/myapp
Architecture: x64
Framework: 'Microsoft.NETCore.App', version '5.0.15' (x64)
.NET location: /usr/local/share/dotnet/
The following frameworks were found:
6.0.2 at [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Сообщение об ошибке указывает имя, версию и архитектуру отсутствующего фреймворка, а также место, где он должен быть установлен. Чтобы запустить приложение, можно установить совместимую среду выполнения в указанном расположении .NET. Если приложение предназначено для версии ниже, чем установленная у вас, и вы хотите запустить его в более новой версии, можно также настроить поведение перехода вперёд для приложения.
Установка совместимой среды выполнения
Сообщение об ошибке содержит ссылку для загрузки отсутствующего фреймворка. Чтобы перейти на соответствующую страницу загрузки, вы можете перейти по этой ссылке.
В качестве альтернативы можно скачать среду выполнения со страницы загрузок .NET. Доступно несколько вариантов загрузки среды выполнения .NET.
В следующей таблице показаны платформы, содержащиеся в каждой среде выполнения.
| Скачивание среды исполнения | Включенные платформы |
|---|---|
| ASP.NET базовая среда выполнения | Microsoft.NETCore.App Microsoft.AspNetCore.App |
| Среда выполнения рабочего стола .NET | Microsoft.NETCore.App Microsoft.WindowsDesktop.App |
| Среда выполнения .NET | Microsoft.NETCore.App |
| Скачивание среды исполнения | Включенные платформы |
|---|---|
| ASP.NET базовая среда выполнения | Microsoft.NETCore.App Microsoft.AspNetCore.App |
| Среда выполнения .NET | Microsoft.NETCore.App |
Выберите скачивание среды выполнения, которая содержит недостающую платформу, а затем установите ее.
На странице загрузки требуемой версии .NET найдите загрузку среды выполнения, соответствующую архитектуре, указанной в сообщении об ошибке. Скорее всего, вы хотите скачать установщик.
Платформа .NET доступна через различные диспетчеры пакетов Linux. Дополнительные сведения см. в статье "Установка .NET в Linux ". (Предварительные версии .NET обычно недоступны через диспетчеры пакетов.)
Необходимо установить пакет среды выполнения .NET для соответствующей версии, например dotnet-runtime-10.0 или aspnetcore-runtime-10.0.
Кроме того, на странице загрузки для требуемой версии .NET можно скачать двоичные файлы для указанной архитектуры.
В большинстве случаев, когда приложение, которое не удалось запустить, использует такую установку, расположение .NET в сообщении об ошибке указывает:
%ProgramFiles%\dotnet
/usr/share/dotnet/
/usr/local/share/dotnet/
Проверьте переменную среды DOTNET_ROOT
Переменная DOTNET_ROOT среды сообщает приложению, где найти dotnet драйвер и необходимые платформы. Если эта переменная задана неправильно или указывает на расположение, которое не содержит допустимой .NET установки, приложение не запускается даже при установке .NET в другом месте компьютера.
Распространённые проблемы, на которые следует обратить внимание:
-
Переменная указывает на неправильное расположение—
DOTNET_ROOTможет быть задан путь из предыдущей .NET установки, среды CI или скрипта, который больше не отражает текущее расположение установки. -
Переменная задана, хотя не должна быть — если в среде задана переменная
DOTNET_ROOT, .NET полностью игнорирует путь установки по умолчанию. Удалите или обновите переменную, если .NET был перемещён. -
Несоответствие архитектуры — используйте вариант, зависящий от архитектуры, при выполнении 32-разрядных приложений на 64-разрядном компьютере. Например, задайте
DOTNET_ROOT_X86для указания 32-разрядной установки. Дополнительные сведения см. вDOTNET_ROOTпеременной среды.
Чтобы диагностировать, распечатайте текущее значение переменной и убедитесь, что он указывает на каталог, содержащий допустимую установку .NET:
echo $env:DOTNET_ROOT
echo $DOTNET_ROOT
Если переменная задана, убедитесь, что путь существует и содержит ожидаемую версию .NET. Если переменная не задана, .NET возвращается в расположение установки по умолчанию для платформы.
Проверьте расположение установки
В ОС Windows .NET выполняет поиск только в одном расположении — первом расположении, где обнаружена установка .NET. Если не удается найти платформу, убедитесь, что .NET установлен в ожидаемом расположении.
При запуске приложения через dotnet поиск общих платформ выполняется в подкаталогах относительно dotnet. При запуске приложения с помощью его исполняемого файла (apphost) .NET ищет в следующих местах в указанном порядке и использует первое, где обнаружена установка:
- Подкаталоги относительно переменной среды
DOTNET_ROOT(если задана). - Глобально зарегистрированное расположение установки (если задано) в
HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\<arch>\InstallLocation. - Расположение установки по умолчанию:
%ProgramFiles%\dotnet(или%ProgramFiles(x86)%\dotnetдля 32-разрядных процессов на 64-разрядной Windows).
Если .NET установлен в расположение, отличное от стандартного, убедитесь, что DOTNET_ROOT указывает на него, чтобы приложение могло найти нужную установку.
Запуск скрипта dotnet-install
Используйте скрипт dotnet-install, если требуется быстрая, неадминистрационная установка, например в сценариях CI или временных средах.
Скрипт устанавливает .NET в выбранную папку. Он не работает как стандартный установщик ОС, и он создает частную установку.
Чтобы запустить приложение из этой частной установки, задайте переменную среды DOTNET_ROOT (или вариант для конкретной архитектуры) при запуске через исполняемый файл (известный как apphost) или запустите через соответствующий хост dotnet из того же места установки.
Инструкции по установке Windows см. в статье "Установка с помощью PowerShell".
Инструкции по установке в Linux см. в разделе "Установка .NET с помощью скрипта".
Инструкции по установке в macOS см. в разделе "Установка .NET с помощью скрипта".
Дополнительные сведения о параметрах скриптов и поведении см. в справочнике по скриптам dotnet-install.
Скачивание двоичных файлов
Двоичный архив .NET можно скачать на странице скачивания. На странице загрузки среды выполнения в столбце Binaries скачайте бинарный выпуск, соответствующий требуемой архитектуре. Извлеките скачанный архив в расположение .NET, указанное в сообщении об ошибке.
Дополнительные сведения об установке вручную см. в разделе "Установка .NET" в Windows
Дополнительные сведения об установке вручную см. в разделе "Установка .NET" в Linux
Дополнительные сведения об установке вручную см. в разделе "Установка .NET в macOS"
Настройка поведения отката
Если у вас уже установлена более поздняя версия требуемой среды выполнения, вы можете запустить приложение с использованием этой версии, настроив параметры перенаправления на более позднюю версию.
При запуске приложения можно указать --roll-forward параметр командной строки или задать DOTNET_ROLL_FORWARD переменную среды.
По умолчанию приложению требуется фреймворк той же основной версии, на которую ориентировано приложение, но оно может использовать более высокую младшую версию или версию исправлений. Однако разработчики приложений могут указать другое поведение. Дополнительные сведения см. в разделе "Переадресация приложений, зависящих от платформы".
Замечание
Так как этот параметр позволяет приложению работать в другой версии платформы, отличной от версии, для которой она была разработана, это может привести к непреднамеренное поведение из-за изменений между версиями платформы.