Загрузка библиотеки Framework 3.5 в среде исполнения Framework 4.0 - PullRequest
1 голос
/ 01 сентября 2011

Я хотел бы знать, что мне нужно иметь в виду, если я создаю библиотеки, которые могут работать на установленной среде выполнения .NET Framework 3.5 или .NET Framework 4.0. Мне нужна некоторая обратная совместимость, как это делает Enterprise Library (но до этого ничего не было с 3.5). Я видел, что они скомпилировали библиотеки на 3.5, но могут работать на приложениях 4.0. Я хотел бы получить тот же эффект, надеюсь, с усилиями по обслуживанию проекта MINIMAL . Я надеюсь, что мой вопрос достаточно ясен. Пожалуйста, дайте мне знать через комментарий, если нет.

EDIT: Я обнаружил, что если я установил app.config для распознавания времени выполнения 2.0 и 4.0, мой EXE-файл на самом деле работает нормально в любое время выполнения. Я протестировал его, удалив .NET 3.5 и 4.0 по отдельности, чтобы посмотреть, сможет ли каждый из них запустить его отдельно. Могут быть некоторые вещи, которые следует учитывать при использовании каждой из этих платформ, но для небольших типов приложений и библиотек я думаю, что это должно быть хорошо. Кто-нибудь не согласится?

Спасибо

Ответы [ 2 ]

1 голос
/ 02 сентября 2011

Время выполнения обратно совместимо.Таким образом, среда выполнения 4.0 может запускать сборки на основе 3.5 и 2.0, но это не наоборот.Если вы попытаетесь запустить сборку 4.0 в среде выполнения 2.0, вы получите исключение BadImageFormatException, поскольку среда выполнения 2.0 не может загрузить сборку 4.0.Параллельное выполнение - это еще один вариант, но он применим к более поздним версиям среды выполнения (я верю 4.0+), и в последний раз я слышал, что Microsoft все еще работает над этим для будущих версий среды выполнения, которые могут быть изолированы.Вам не нужно компилировать несколько версий ваших сборок, но вы должны иметь в виду минимальную версию времени выполнения, которая потребуется для вашего приложения.Если у вас есть один модуль, который требует, например, .NET 3.5, то это должно быть минимально требуемое время выполнения для всего вашего приложения.

1 голос
/ 01 сентября 2011

MS имеет статью на эту тему http://msdn.microsoft.com/en-us/library/ms171868.aspx

Внутрипроцессное параллельное выполнение Эта функция позволяет приложению загружать и запускать несколько версий .NET Framework в одном процессе.Например, вы можете запускать приложения, которые загружают надстройки (или компоненты) на основе .NET Framework 2.0 с пакетом обновления 1 (SP1) и надстройки на основе .NET Framework 4 в одном и том же процессе.Старые компоненты продолжают использовать более старую версию .NET Framework, а новые компоненты используют новую версию .NET Framework.Для получения дополнительной информации см. Внутрипроизводственное параллельное выполнение.

...