Может.NET 4,0 кода взаимодействовать с.NET 2,0 кода?

Есть ли барьеры совместимости с.NET 4,0 кода вызова блока в.NET 2,0 блока? И наоборот?

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

25
задан spoulson 15 April 2010 в 16:37
поделиться

2 ответа

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 и полностью избежать этой проблемы.

38
ответ дан 28 November 2019 в 21:30
поделиться

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

-3
ответ дан 28 November 2019 в 21:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: