Практическое руководство. Настройка приложения для поддержки платформа .NET Framework 4 или более поздних версий
Все приложения, которые размещают в себе среду CLR, должны запускать или активировать среду CLR для выполнения управляемого кода. Как правило, приложение .NET Framework запускается в той версии среды CLR, в которой оно было собрано, однако для приложений для настольных систем это поведение можно изменить с помощью файла конфигурации приложения (иногда называемого файлом app.config). Однако, для приложений Магазина Windows или приложений Windows Phone, изменить предусмотренное по умолчанию поведение активации с помощью файла конфигурации приложения невозможно. В этой статье поясняется, как разрешить приложению для настольных систем запускаться в другой версии .NET Framework, а также приводятся примеры нацеливания на версию 4 или более позднюю.
Версия .NET Framework, в которой запускается приложение, определяется в следующем порядке:
Файл конфигурации.
Если файл конфигурации приложения содержит <поддерживаемые записиRuntime>, указывающие одну или несколько платформа .NET Framework версий, а одна из этих версий присутствует на компьютере пользователя, приложение запускается в этой версии. Файл конфигурации считывает <поддерживаемые записиRuntime> в указанном порядке и использует первую платформа .NET Framework версию, указанную на компьютере пользователя. (Используйте <элемент requiredRuntime> для версии 1.0.)
Скомпилированная версия.
Если файла конфигурации нет, но версия .NET Framework, в которой было собрано приложение, присутствует на компьютере пользователя, приложение запускается в этой версии.
Последняя установленная версия.
Если версия платформа .NET Framework, на которую приложение было создано, отсутствует, и файл конфигурации не указывает версию в <поддерживаемом элементеRuntime>, приложение пытается запуститься на последней версии платформа .NET Framework, которая присутствует на компьютере пользователя.
Однако платформа .NET Framework 1.0, 1.1, 2.0, 3.0 и 3.5 приложения не запускаются автоматически на платформа .NET Framework 4 или более поздней версии, а в некоторых случаях пользователь может получить ошибку и может быть предложено установить платформа .NET Framework 3.5. Поведение активации может также зависеть от операционной системы пользователя, потому что в состав разных версий Windows входят разные версии .NET Framework. Если приложение поддерживает и .NET Framework 3.5, и .NET Framework 4 или более поздние версии, рекомендуется указывать это путем включения в файл конфигурации нескольких записей во избежание ошибок инициализации .NET Framework. Дополнительные сведения см. в статье Версии и зависимости платформы .NET Framework.
Также можно настроить приложения .NET Framework 3.5 для запуска на платформе .NET Framework 4 или более поздней даже на компьютерах, на которых установлена .NET Framework 3.5, чтобы воспользоваться направленными на повышение производительности преимуществами версий 4 и более поздних.
Внимание
Рекомендуется всегда тестировать приложение в каждой из поддерживаемых им версий .NET Framework. Сведения об обновлении приложения для поддержки более поздних версий платформы .NET Framework см. в статье Совместимость версий в .NET Framework.
Сведения о том, как внести в приложения .NET Framework 1.0 и 1.1 изменения для поддержки Windows 7 и Windows 8, см. в статье Миграция из .NET Framework 1.1.
Настройка приложения для запуска в .NET Framework 4 или более поздних версиях
Добавьте или найдите файл конфигурации проекта .NET Framework. Файл конфигурации приложения находится в том же каталоге, что и приложение, и имеет то же имя, однако с расширением .config. Например, для приложения с именем MyExecutable.exe файл конфигурации приложения называется MyExecutable.exe.config.
Чтобы добавить файл конфигурации, в строке меню Visual Studio выберите Проект, Добавить новый элемент. Выберите Общие в области слева, а затем выберите Файл конфигурации. Назовите файл конфигурации App.config. Для проектов приложений Магазина Windows или Windows Phone эти элементы меню недоступны, так как изменить политику активации на этих платформах невозможно.
Добавьте поддерживаемый элементRuntime> следующим образом в <файл конфигурации приложения:
<configuration> <startup> <supportedRuntime version="version"/> </startup> </configuration>
Где <версия указывает версию> СРЕДЫ CLR, которая соответствует версии платформа .NET Framework, которую поддерживает ваше приложение. Можно использовать следующие строки:
.NET Framework 1.0: "v1.0.3705"
.NET Framework 1.1: "v1.1.4322"
.NET Framework 2.0, 3.0 и 3.5: "v2.0.50727"
.NET Framework 4 и более поздние версии: "v4.0"
Можно добавить несколько поддерживаемых элементовRuntime>, перечисленных в порядке предпочтения, чтобы указать поддержку нескольких <версий платформа .NET Framework.
В следующей таблице показано, как параметры файла конфигурации приложения и версии платформы .NET Framework, установленные на компьютере, определяют версию, в которой запускается приложение .NET Framework 3.5. Примеры относятся к приложению .NET Framework 3.5, однако аналогичную логику можно использовать для нацеливания приложений, собранных с использованием более ранних версий .NET Framework. Обратите внимание, что для указания .NET Framework 3.5 в файле конфигурации приложения используется номер версии .NET Framework 2.0 (v2.0.50727).
Параметр файла app.config | На компьютере с установленной версией 3.5 | На компьютере с версиями 3.5 и 4 или более поздними | На компьютере с версией 4 или более поздними |
---|---|---|---|
нет | Запускается в 3.5 | Запускается в 3.5 | Выводит сообщение об ошибке, предлагая пользователю установить нужную версию * |
<supportedRuntime version="v2.0.50727"/> |
Запускается в 3.5 | Запускается в 3.5 | Выводит сообщение об ошибке, предлагая пользователю установить нужную версию * |
<supportedRuntime version="v2.0.50727"/> <supportedRuntime version="v4.0"/> |
Запускается в 3.5 | Запускается в 3.5 | Запускается в 4 или более поздней версии |
<supportedRuntime version="v4.0"/> <supportedRuntime version="v2.0.50727"/> |
Запускается в 3.5 | Запускается в 4 или более поздней версии | Запускается в 4 или более поздней версии |
<supportedRuntime version="v4.0"/> |
Выводит сообщение об ошибке, предлагая пользователю установить нужную версию * | Запускается в 4 или более поздней версии | Запускается в 4 или более поздней версии |
* Дополнительные сведения об этом сообщении об ошибке и способах ее предотвращения см. в разделе платформа .NET Framework Ошибки инициализации: управление взаимодействием с пользователем.