2012-05-03 2 views
3

Это простой вопрос. Я пишу программное обеспечение с .NET 4.5 (теперь это Beta). Какая версия среды выполнения .NET необходима для запуска этого программного обеспечения? Это 4,5? Кто-то старше?Какая версия среды выполнения .NET требуется для программного обеспечения, написанного на .NET 4.5?

Кроме того, являются ли обновления .NET частью Центра обновления Windows?

+0

Согласен с ответами ниже. Однако, если вы не используете особые функции .NET 4.5, вы можете перенаправить приложение на 2.0 и выше в зависимости от требуемых функций. – Inisheer

ответ

7

Для запуска 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

+1

Примечание: требуется Vista или более поздняя версия (не поддерживается в XP) –

1

. NET 4.0 runtime. 4.5 - больше .Net библиотека. Версия CLR не меняется.

Если вы кодируете на C#, то компилятор меняется, но компилирует CLR 4.0 IL.

http://www.infoq.com/news/2012/04/net-4-5-multitargeting

+0

Цитирование необходимо? – Tower

+0

Версия CLR на самом деле меняется. –

1

Это зависит от того, написано ли вы в стиле Metro. Для приложений в стиле Metro (Windows 8) вы фактически используете подмножество платформы .NET 4.5 со специальной средой Metro-only. Для всех других приложений .NET 4.5 использует среду выполнения .NET 4.0 с дополнительными библиотеками (подобно тому, как .NET 3.0 и .NET 3.5 могут работать в среде выполнения .NET 2.0).

+0

И да, обновления .NET являются частью Центра обновления Windows, включая обновления среды и среды выполнения и обновления безопасности. (Вы можете получить их отдельно от центра загрузки Microsoft, а также.) –

1

Версия CLR 1.0, 1.1, 2.0 и 4.0. Другие версии .NET Framework просто предоставляют дополнительные типы. .NET 3 и 3.5 работают на CLR 2.0. .NET 4.5 работает на CLR 4.

Примечание: для выполнения 4.5 приложений все еще требуется .NET 4.5.

+0

Это не совсем так. Версия 4.5, помимо предоставления новых типов, также перемещала существующие типы между сборками. Если вы ссылаетесь на те типы (которые существуют в 4.0 и 4.5), постройте на 4.5 и разверните их до 4.0, вы получите исключение во время выполнения. – JaredPar

2

Возможно, более важный вопрос: «Какая ОС требуется для .NET 4.5?»

Вот страница установки в первую очередь

http://msdn.microsoft.com/en-us/library/5a4x27ek

Самый большой Гоча вы не можете запустить 4.5 на Windows XP - это слишком старый (> 10 лет)
Так что не думайте, вы можете, если это будет проблемой в вашей среде!

4.5 requires одно из следующих:

  • Windows 8 (32-разрядных и 64-разрядных версий)
  • Windows 7 (32-разрядные и 64-разрядные версии)
  • Windows Vista SP2 (32-разрядные и 64-разрядные версии)

  • Windows Server 2012 (64-разрядная версия)
  • Windows Server 2008 R2 (64-разрядная версия)
  • Windows Server 2008 SP2 (32-разрядные и 64-разрядные версии)