Да. Версия CLR изменяется с 4.0.30319.269
на 4.0.30319.17379
. Таким образом, CLR является новым, но он обратно совместим с .NET 4.0 CLR. Вам не нужно перекомпилировать какой-либо код, написанный и скомпилированный для .NET v4.0.
Со страницы .NET Framework версии и зависимости на MSDN:
.NET Framework 4.5 RC - это обновление на месте, которое заменяет .NET Framework 4 на вашем компьютере. После установки этого обновления ваши приложения .NET Framework 4 должны продолжать работать без перекомпиляции. Однако некоторые изменения в .NET Framework могут потребовать внесения изменений в код вашего приложения.
Кроме того, из блога .NET Framework :
.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;
}