Будет ли .NET 4.5 представить новую версию CLR?

StackOverflow https://stackoverflow.com/questions/8810391

  •  26-10-2019
  •  | 
  •  

Вопрос

В прошлом не каждая новая версия .NET поставлялась с новой версией CLR. Я знаю .NET 1.0, 1.1, 2,0 и 4.0, но .NET 3.0 и 3.5 - нет.

Будет ли .NET 4.5 представить новый CLR? И как можно сказать, есть ли новый CLR?

Это было полезно?

Решение

Да, .NET 4.5 имеет бренд, шлепающий новую версию CLR, вы можете прочитать об улучшениях AT;

http://blogs.microsoft.co.il/blogs/sasha/archive/2011/09/17/improvements-in-the-clr-core-in-net-framework-4-5.aspx

Чтобы уточнить; Это новая версия CLR, которая на самом деле заменяет 4.0, поэтому называть его обновлением или новым CLR является спорным.

Чтобы сказать, в какой версии CLR вы используете, используйте

System.Runtime.InteropServices.RuntimeEnvironment.GetSystemVersion()

Другие советы

Нет, это все еще версия 4.0.30319. Новый пересмотр CLR.DLL и друзей заменит существующие на вашей машине. Та же схема, что и в .NET 3.0, 3.5 и 3,5SP1. Проверка, чтобы увидеть, установлен ли 4.5, требует такого же подхода, что и эти версии, вы Проверьте реестр.

Да. А Версия изменений CLR из 4.0.30319.269 к 4.0.30319.17379. Анкет Таким образом, CLR новый, но он обратно совместим с CLR .NET 4.0. Вам не нужно пересекать какой-либо код, записанный и составленный .NET v4.0.

От .Net Framework версии и зависимости Страница на MSDN:

.NET Framework 4.5 RC-это обновление на месте, которое заменяет .NET Framework 4 на вашем компьютере. После установки этого обновления ваши приложения .NET Framework 4 должны продолжать работать без необходимости перекомпиляции. Однако некоторые изменения в платформе .NET могут потребовать изменения в коде вашего приложения.

Кроме того, из .Net Framework Blog:

.NET Framework 4.5-это обновление на месте, которое заменяет .NET Framework 4 (а не установка бок о бок). Наша цель состоит в том, чтобы .NET 4.5 полностью совместима с приложениями, созданными для .NET 4

Есть некоторые изменения, которые нет обратно совместимо. Увидеть Совместимость приложения в .NET Framework 4.5 RC Страница на MSDN.

Официальное руководство от Microsoft и хорошей практики кодирования - это не обнаружение конкретных версий CLR. Скорее, вы должны обнаружить, присутствуют ли определенные функции. Вместо

public static bool IsDotNet45()
{
    return Environment.Version.Major == 4 &&
           Environment.Version.Revision > 17000;
}

Сделайте что -то вроде:

public static bool SupportsReflectionContext()
{
    // Class "ReflectionContext" exists from .NET 4.5 onwards.
    return Type.GetType("System.Reflection.ReflectionContext", false) != null;
}

Хотя я сомневаюсь, что это было доступно в его текущем формате во время вопроса, вот КЛР На MSDN, где он показывает все фрейв -версии и версию CLR, которые они включают. Я нашел это очень полезным, поэтому я подумал, что поделюсь.

Следующий на .NET 4.5 в нем говорится, что включает CLR 4.

.NET 4 и .NET 4.5 (включая 4.5.1 и 4.5.2) находятся на CLR версии 4.0

Подробнее: https://msdn.microsoft.com/en-us/library/8bs2ecf4(v=vs.110).aspx

.NET Framework 4.5 похож на пакет обслуживания для .NET Framework 4 с некоторыми дополнительными функциями.

У Скотта Хансельмана есть пост в своем блоге, посвященный этому вопросу. Вы можете узнать об этом здесь:

http://www.hanselman.com/blog/netversioningandmultiargetingnet45isaninceplaceupgradeTonettonet40.aspx

Задолго до того, что в CLR есть обновления, которые улучшают производительность и добавляют новые библиотеки. CLR, используемый .NET 4.5, совместим с .NET 4. Это считается незначительным обновлением. Эти незначительные обновления-это то, что Microsoft называет обновлением на месте.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top