Подтвердить что ты не робот

Может ли код .NET 4.0 взаимодействовать с кодом .NET 2.0?

Существуют ли ограничения совместимости с кодом сборки сборки .NET 4.0 в сборке .NET 2.0? И наоборот?

В частности, я изучаю обновление до Visual Studio 2010 при использовании стороннего приложения на основе .NET 2.0. Приложение расширяемо с помощью перехватчиков, которые ссылаются на мой пользовательский код. И наоборот, мой код будет ссылаться на сборки приложений.

4b9b3361

Ответ 1

CLR, в .NET 4, может потреблять сборки .NET 2 и использовать их должным образом.

Если вы хотите, чтобы ваше приложение .NET 2 могло загружать сборки .NET 4, вам нужно настроить его по-другому. Установив необходимое время выполнения .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 и полностью исключает эту проблему.

Ответ 2

Сборки .NET 4.0 могут без проблем вызывать сборки .NET 2.0. Однако очень маловероятно, что вы сможете вызывать сборку .NET 4.0 из .NET 2.0, если сборка .NET 4.0 не использует преимущества каких-либо новых функций фреймворка, и вы настраиваете перенаправления сборки.