Ответ 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 приводит к отсутствию ссылки на метод. Но это не должно влиять на вас.