Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В Windows приложения .NET, зависящие от платформы, больше не ищут платформы в нескольких расположениях установки.
Предыдущее поведение
В предыдущих версиях приложение .NET, зависящее от платформы, ищет платформы в нескольких расположениях установки в Windows. Расположения:
- При запуске приложения через dotnet, подкаталоги расположены относительно исполняемого
dotnet
файла. - При запуске приложения через исполняемый файл (
apphost
), используется расположение, указанное значением переменной средыDOTNET_ROOT
, если оно установлено. - Глобально зарегистрированное расположение установки в HKLM\SOFTWARE\dotnet\Setup\InstallVersions<arch>\InstallLocation (если задано).
- Расположение установки по умолчанию %ProgramFiles%\dotnet (или %ProgramFiles(x86)%\dotnet для 32-разрядных процессов в 64-разрядной версии Windows.
Это многоуровневое поведение подстановки было включено по умолчанию, но может быть отключено, задав переменную DOTNET_MULTILEVEL_LOOKUP=0
среды.
Новое поведение
Приложения, предназначенные для .NET 7 или более поздней версии, ищут фреймворки только в одном месте, где впервые найдена установка .NET. При запуске приложения через dotnet платформы ищутся только в подкаталогах относительно исполняемого dotnet
файла. При запуске приложения через исполняемый файл (apphost
), фреймворки ищутся только в первом из следующих местоположений, где поддерживается .NET.
- Расположение, указанное значением
DOTNET_ROOT
переменной среды (если задано). - Глобально зарегистрированное расположение установки в HKLM\SOFTWARE\dotnet\Setup\InstallVersions<arch>\InstallLocation (если задано).
- Расположение установки по умолчанию %ProgramFiles%\dotnet (или %ProgramFiles(x86)%\dotnet для 32-разрядных процессов в 64-разрядной версии Windows.
Представленная версия
.NET 7
Тип разрушающего изменения
Это изменение может повлиять на совместимость двоичных файлов.
Причина изменения
Были многочисленные проблемы, вызванные многоуровневой подстановки:
- Путаница для пользователей: приложение может выбрать глобальное или стандартное расположение установки, несмотря на запуск .NET из частной установки.
- Несоответствие между платформами (Windows и не Windows).
- Нарушения поведения часто происходят в автоматических системах: новая глобальная установка .NET способна воздействовать на изолированные сборки и тесты, иначе не затронутые.
- Проблемы производительности.
Рекомендуемое действие
Убедитесь, что требуемая версия .NET установлена в едином месте установки .NET. Сообщения об ошибках, выводимые при сбое запуска, включают ожидаемое местоположение.
Затронутые API
Нет.