Совместимость фреймворка - PullRequest
1 голос
/ 04 мая 2011

У меня есть библиотека классов, которая построена на .NET Framework v4.0. Можно ли добавить это как ссылку в консоли или веб-приложении, предназначенном для v3.5 framework?

Ответы [ 3 ]

3 голосов
/ 04 мая 2011

Формат метаданных изменился в .NET 4.0.Версия 2 CLR, та, которую вы получаете, когда вы нацеливаетесь на любую версию .NET между 2.0 и 3.5, не знает, как ее читать.То же самое произошло между 1.1 и 2.0.Версия 4 CLR знает, как читать старые форматы без проблем.Если у вас есть ссылка на сборку без фреймворка, которая была скомпилирована для целевой версии 4, то у вас есть для использования .NET 4.0.

Ретаргетинг существующего проекта EXE, который нев противном случае требуется ссылка на эту сборку.Добавьте файл .config в проект и вставьте его:

<startup useLegacyV2RuntimeActivationPolicy="true">
   <supportedRuntime version="v4.0"/>
</startup>  
2 голосов
/ 04 мая 2011

Я бы предложил нет, потому что они используют совершенно разные CLR.Как правило, обратная совместимость = да, прямая совместимость = нет.

0 голосов
/ 04 мая 2011

Я только что создал консольное приложение Framework 3.5 и добавил ссылку на 4.0 dll, который мне пригодился.

Компилятору это совсем не понравилось.

(пустая) программа запускалась один раз (консоль появилась, а затем закрылась), а затем в список ошибок поступило 40 предупреждений, касающихся проблем с версиями, и к пространству имен dll вообще не удалось получить доступ.

Я собираюсь согласиться с Саскихой и сказать, что это похоже на запрет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...