Есть ли барьеры совместимости с.NET 4,0 кода вызова блока в.NET 2,0 блока? И наоборот?
Строго говоря, я исследую обновление Visual Studio 2010 при использовании приложения сторонних производителей на основе.NET 2.0. Приложение расширяемо рычагами та ссылка мой пользовательский код. И наоборот, мой код сошлется на блоки приложения.
CLR в .NET 4 может использовать сборки .NET 2. и используйте их правильно.
Если вы хотите, чтобы ваше приложение .NET 2 могло загружать сборки .NET 4, вам необходимо настроить его по-другому. Установив для параметра requiredRuntime значение .NET 4 и устаревшую политику загрузки, вы должны иметь возможность принудительно загружать приложение .NET 2 с помощью CLR 4, что позволит использовать ваши сборки .NET 4.
Настройте файл app.config таким образом, чтобы он включал:
<?xml version="1.0"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>
При этом в подобной ситуации я бы рекомендовал просто использовать VS 2010 и настроить .NET 3.5 вместо .NET 4. Это скомпилирует ваши сборки для CLR 2 и полностью избежать этой проблемы.
Сборки .NET 4.0 могут без труда вызывать сборки .NET 2.0. Однако маловероятно, что вы сможете вызвать сборку .NET 4.0 из .NET 2.0, если только сборка .NET 4.0 не использует преимущества каких-либо новых функций инфраструктуры и вы не настроите перенаправления сборки.