Что происходит, когда .NET 4.0 ссылается на сборку .NET 2.0?

Что именно делает среда выполнения .NET 4.0, если исполняемый файл .NET 4.0 содержит ссылку на сборку .NET 2.0?

Выполняется ли сборка .NET 2.0 со средой выполнения .NET 4.0 (другими словами, .NET 4.0 должна быть на 100% API-совместимой с .NET 2.0) или процесс каким-то образом размещает среду выполнения .NET 2.0, и происходит какое-то волшебство, чтобы сделать типы .NET 2.0, прозрачно доступные для моего кода на основе .NET 4.0?


person Cygon    schedule 16.04.2010    source источник


Ответы (1)


Говорят, должно работать нормально. Ознакомьтесь с этим.

person m0s    schedule 16.04.2010
comment
Спасибо. Похоже, что код на самом деле будет выполняться .NET 4.0 CLR, если он загружен приложением .NET 4.0. Все еще ищу какое-нибудь твердое официальное заявление об этом на MSDN, но еще не обнаружил его. - person Cygon; 17.04.2010
comment
Я помечу это как ответ, потому что он приводит меня к наиболее полезной информации по теме. Когда приложение .NET 4.0 загружает сборку .NET 2.0, оно действительно запускается в среде CLR .NET 4.0. Есть даже тонкие различия (наиболее важная модель безопасности), из-за которых сборки .NET 2.0 могут перестать работать без дополнительных настроек файла app.config (log4net является одной из таких проблемных сборок). - person Cygon; 22.06.2010