Определение загружаемой версии среды выполнения
Обновлен: Ноябрь 2007
Среда CLR использует следующие сведения, чтобы определить, какую версию среды загружать для приложения:
Доступные версии среды выполнения.
Версии среды выполнения, поддерживаемые приложением.
Поддерживаемые версии среды выполнения
Среда выполнения использует файл конфигурации приложения и заголовок переносимого исполняемого (РЕ) файла, чтобы определить, какую версию среды выполнения поддерживает приложение. Если файл конфигурации приложения не существует, среда выполнения загружает версию, указанную в заголовке PE-файла, при условии, что таковая доступна.
Если файл конфигурации приложения существует, среда выполнения определяет подходящую версию для загрузки, исходя из результатов следующего процесса:
Среда выполнения проверяет элемент Элемент <supportedRuntime> в файле конфигурации приложения. Если в элементе <supportedRuntime> указана одна или несколько поддерживаемых версий, среда выполнения загружает версию, указанную в первом элементе <supportedRuntime>. Если эта версия недоступна, среда выполнения проверяет следующий элемент <supportedRuntime> и предпринимает попытку загрузить указанную версию. Если эта версия среды выполнения недоступна, проверяются следующие элементы <supportedRuntime>. Если ни одна из поддерживаемых версий недоступна, среде выполнения не удается загрузить версию, и она отображает для пользователя соответствующее сообщение (см. шаг 3).
Среда выполнения считывает заголовок PE-файла исполняемого файла приложения. Если версия, заданная в заголовке PE-файла, существует, среда выполнения загружает эту версию. Если указанная версия недоступна, среда выполнения ищет версию, которая определена Майкрософт как совместимая с версией, заданной заголовком PE. Если эта версия не найдена, процесс переходит к шагу 3.
Среда выполнения отображает сообщение о том, что поддерживаемая приложением версия среды выполнения недоступна. Среда выполнения не загружена.
Примечание. Можно подавить отображение этого сообщения, используя значение NoGuiFromShim в разделе реестра "HKLM\Software\Microsoft\.NETFramework" или используя переменную среды COMPLUS_NoGuiFromShim. Например, можно подавить отображение сообщений для приложений, которые обычно не взаимодействуют с пользователем, такие как автоматические установки или службы Windows. После подавления отображения сообщения, среда выполнения записывает сообщение в журнал событий. Чтобы подавить это сообщение для всех приложений на компьютере, присвойте значению реестра NoGuiFromShim значение 1. Как вариант, присвойте переменной среды COMPLUS_NoGuiFromShim значение 1, чтобы подавить сообщения для всех приложений, запускающихся в контексте определенного пользователя.
Примечание. |
---|
После загрузки версии среды выполнения перенаправление привязки сборок может указать, что будет загружена другая версия отдельной сборки платформы .NET Framework. Это перенаправление влияет только на определенную перенаправляемую сборку. |
См. также
Основные понятия
Перенаправление привязки сборок
Обнаружение сведений о версии среды выполнения
Настройка перенаправления привязки сборок