Для запуска 4.5 скомпилированных сборок вы должны быть установлена 4,5 рамки. Установка 4.5 - это обновление, которое в основном совместимо с версией 4.0, но, безусловно, не поддерживает обратную совместимость.
Одно конкретное место, которое может вас тронуть, - это форвардеры типа. В структуре 4.5 содержится огромное количество форвардеров нового типа (более 1100 из них). Экспедитор типа является способом сборки, чтобы заявить, что тип перемещен из сборки A в сборку B. Среда CLR будет тихо перенаправлять любые ссылки на заданный тип от A до B.
Сборка, составленная против 4.5, будет излучать ссылка на тип, как если бы она существовала в сборке B. Если вы затем запустите эту сборку против установки 4.0, она будет ожидать, что тип будет в сборке B, и этого не будет. Результатом будет исключение загрузки типа.
Конкретный пример:
static void Main(string[] args)
{
var attrib = new ExtensionAttribute();
Console.WriteLine(attrib);
}
скомпилировать этот код на 4.5 поле, а затем попытаться запустить его на поле 4.0. Результатом будет исключение загрузки типа. Тип ExtensionAttribute
переместился из System.Core в 4.0 в mscorlib в 4.5
Согласен с ответами ниже. Однако, если вы не используете особые функции .NET 4.5, вы можете перенаправить приложение на 2.0 и выше в зависимости от требуемых функций. – Inisheer