Совместимость версий в .NET Framework
Обратная совместимость означает, что приложение, разработанное для конкретной версии платформы, будет запускаться и в более поздних версиях этой платформы. В платформе .NET Framework в максимально возможной степени обеспечивается обратная совместимость: исходный код, написанный для одной версии платформы .NET Framework, должен компилироваться в более поздних версиях этой платформы, а двоичные файлы, работающие в одной версии платформы .NET Framework, должны точно так же работать в более поздних версиях этой платформы.
Совместимость версий приложений
По умолчанию приложение запускается в той версии платформы .NET Framework, для которой оно было создано. Если эта версия отсутствует и в файле конфигурации приложения поддерживаемые версии не определены, может произойти ошибка инициализации платформы .NET Framework. В этом случае попытка запустить приложение завершится сбоем.
Чтобы определить конкретные версии, в которых запускается приложение, добавьте в файл конфигурации этого приложения один или несколько элементов <supportedRuntime>. Каждый элемент <supportedRuntime> определяет поддерживаемую версию среды выполнения. При этом первый элемент указывает наиболее предпочтительную версию, а последний элемент — наименее предпочтительную версию.
Совместимость версий компонентов
Приложение может управлять версией платформы .NET Framework, в которой оно работает, а компонент не может. Компоненты и библиотеки классов загружаются в контексте конкретного приложения и, следовательно, автоматически запускаются в той версии платформы .NET Framework, в которой запускается это приложение.
Из-за этого ограничения гарантии совместимости особенно важны для компонентов. Начиная с .NET Framework 4, можно задать степень, с которой компонент предположительно останется совместимым в нескольких версиях, применив для этого компонента атрибут System.Runtime.Versioning.ComponentGuaranteesAttribute. Этот атрибут может использоваться разными средствами для обнаружения возможных нарушений гарантии совместимости в будущих версиях компонента.
Обратная совместимость и платформа .NET Framework 4
Платформа .NET Framework 4 обратно совместима с приложениями, которые были созданы с использованием .NET Framework версий 1.1, 2.0, 3.0 и 3.5. Другими словами, приложения и компоненты, созданные с использованием предыдущих версий платформы .NET Framework, будут работать и в .NET Framework 4.
Однако на практике эту совместимость можно нарушить на первый взгляд несущественными изменениями в платформе .NET Framework и изменениями в методах программирования. Например, улучшения в производительности в платформе .NET Framework 4 могут привести к состоянию гонки, которого не было в предыдущих версиях. Следует также иметь в виду, что такие действия, как использование жестко запрограммированного пути к сборкам .NET Framework, сравнение на равенство с конкретной версией платформы .NET Framework и получение значения частного поля с помощью отражения, нарушают обратную совместимость. Кроме того, каждая версия платформы .NET Framework содержит исправления ошибок и изменения, связанные с безопасностью, которые могут влиять на совместимость некоторых приложений и компонентов.
Чтобы убедиться в совместимости приложений и компонентов .NET Framework с другими версиями платформы .NET Framework, необходимо тестировать эти приложения и компоненты. Чтобы убедиться в том, что приложение или компонент успешно работает в платформе .NET Framework 4, воспользуйтесь документом .NET Framework 4 Application Compatibility Walkthrough.
Если приложение или компонент не работает в платформе .NET Framework 4, как ожидалось, воспользуйтесь следующими контрольными списками.
Для приложений .NET Framework 2.0, 3.0 и 3.5
Обратитесь к разделу Проблемы при миграции на .NET Framework 4 в отношении любых изменений, которые могут влиять на приложение, и используйте описанный обходной путь.
В случае перекомпиляции существующего исходного кода для запуска в платформе .NET Framework 4 или при разработке новой версии приложения или компонента, предназначенного для платформы .NET Framework 4, на основе существующего исходного кода обратитесь к разделу Устаревшие возможности .NET Framework в отношении устаревших типов и членов и используйте описанный обходной путь. (Скомпилированный ранее код будет продолжать работать с типами и членами, которые отмечены как устаревшие.)
Если выясняется, что изменение в платформе .NET Framework 4 нарушило работу приложения, обратитесь к разделу Схема параметров среды выполнения, чтобы определить, можно ли использовать параметры среды выполнения в файле конфигурации приложения для восстановления предыдущего поведения.
В случае обнаружения недокументированной проблемы зарегистрируйте ошибку Microsoft Connect и обратитесь по адресу netfxcf@microsoft.com с указанием номера ошибки.
Для приложений .NET Framework 1.1
Обратитесь к разделу Проблемы при миграции на .NET Framework 4 в отношении любых изменений, которые могут влиять на приложение, и используйте описанный обходной путь.
Обратитесь к документам Changes in .NET Framework 3.5 SP1 и Changes in .NET Framework 2.0 в отношении любых изменений, сделанных в этих версиях.
В случае перекомпиляции существующего исходного кода для запуска в платформе .NET Framework 4 или при разработке новой версии приложения или компонента, предназначенного для платформы .NET Framework 4, на основе существующего исходного кода обратитесь к разделу Устаревшие возможности .NET Framework в отношении устаревших типов и членов и используйте описанный обходной путь. (Скомпилированный ранее код будет продолжать работать с типами и членами, которые отмечены как устаревшие.)
Если выясняется, что изменение в платформе .NET Framework 4 нарушило работу приложения, обратитесь к разделу Схема параметров среды выполнения, чтобы определить, можно ли использовать параметры среды выполнения в файле конфигурации приложения для восстановления предыдущего поведения.
В случае обнаружения недокументированной проблемы зарегистрируйте ошибку Microsoft Connect и обратитесь по адресу netfxcf@microsoft.com с указанием номера ошибки.
Совместимость и параллельное выполнение
Если найти подходящий обходной путь для проблемы не удается, вспомните, что платформа .NET Framework 4 работает параллельно с версиями 1.1, 2.0 и 3.5. Чтобы запустить приложение в наилучшей для него среде, можно на целевом компьютере установить соответствующую версию платформы .NET Framework. Дополнительные сведения о параллельном выполнении см. в разделе Параллельное выполнение.
См. также
Основные понятия
Новые возможности .NET Framework 4
Другие ресурсы
Устаревшие возможности .NET Framework
Проблемы при миграции на .NET Framework 4
Журнал изменений
Дата |
Журнал |
Причина |
---|---|---|
Август 2010 |
Отмечено, что, если поддерживаемая версия платформы .NET Framework не установлена, происходит ошибка инициализации .NET Framework. |
Исправление ошибки содержимого. |