Sì. version of the CLR changes da 4.0.30319.269
a 4.0.30319.17379
. Quindi, il CLR è nuovo, ma è retrocompatibile con .NET 4.0 CLR. Non dovresti aver bisogno di ricompilare alcun codice scritto e compilato da .NET v4.0.
Dalla pagina .NET Framework Versions and Dependencies su MSDN:
.NET Framework 4.5 RC è un aggiornamento sul posto che sostituisce il .NET Framework 4 sul computer. Dopo aver installato questo aggiornamento, le app .NET Framework 4 dovrebbero continuare a funzionare senza richiedere la ricompilazione. Tuttavia, alcune modifiche a .NET Framework potrebbero richiedere modifiche al codice dell'app.
Inoltre, dal .NET Framework blog:
NET Framework 4.5 è un aggiornamento sul posto che sostituisce (un'installazione side-by-side anziché) Framework 4. Il nostro obiettivo è per .NET 4.5 di essere pienamente compatibile con le applicazioni costruite per .NET 4
Ci sono alcuni cambiamenti che sono non compatibile. Vedere la pagina Application Compatibility in the .NET Framework 4.5 RC su MSDN.
Le linee guida ufficiali di Microsoft e buone pratiche di codifica non consentono di rilevare versioni specifiche del CLR. Piuttosto, dovresti rilevare se sono presenti determinate caratteristiche. Invece di
public static bool IsDotNet45()
{
return Environment.Version.Major == 4 &&
Environment.Version.Revision > 17000;
}
fare qualcosa di simile:
public static bool SupportsReflectionContext()
{
// Class "ReflectionContext" exists from .NET 4.5 onwards.
return Type.GetType("System.Reflection.ReflectionContext", false) != null;
}
fonte
2012-07-16 21:28:45
Che cosa si intende per 'nuovo' ? In un certo senso, ogni modifica al CLR può essere vista come "un nuovo CLR". Tuttavia, .NET 4.5 non è certamente una versione affiancata. Sostituirà .NET 4.0. In tal senso, la risposta di Hans Passant è corretta. – Steven
Sì, suppongo che potresti vederlo in entrambe le direzioni, 4.5 richiede un CLR aggiornato, se lo vedi come nuovo o no è una questione di discussione. –
La domanda è ambigua. Ecco perché sia la tua sia la risposta di Hans sono corrette, mentre dici esattamente il contrario :-) – Steven