Ответ 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 и полностью исключает эту проблему.