Загрузка сборки, предназначенной для .NET 4.5, в домене приложений .NET 4.0

Предполагая, что в системе установлены .NET 4.0 и .NET 4.5.

Можно ли загружать и работать с сборкой .NET 4.5 из ассемблированного таргетинга .NET 4.0?

Проще говоря, могу ли я вызвать Assembly.Load из .NET 4.0 для загрузки сборки таргетинга .NET 4.5?

Ответы

Ответ 1

Предполагая систему как .NET 4.0 и .NET 4.5:

Как указано в блог marcgravell, связанный sehe

4.5 - это встроенная надстройка поверх 4.0, в GAC; после того, как вы установили 4.5, 4.0 с 4.5 сборками

Затем вызов Assembly.Load из таргетинга .NET-кода 4.0 (скомпилированный компилятором 4.0) будет фактически выполняться с использованием реализации фреймворка 4.5, поэтому я не вижу причин, по которым он не мог загрузить сборку 4.5.

margravell отмечает, что проблемы возникают при попытке выполнить скомпилированный код .NET 4.5 в системе с установленным только 4.0, поскольку реализация итераторов return/break yield приводит к отсутствию ссылки на метод. Но это не должно влиять на вас.