2012-01-10 9 views

risposta

28

Sì, .NET 4.5 ha una nuova versione del CLR, è possibile leggere i miglioramenti a;

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

Per chiarire; questa è una nuova versione del CLR che in realtà sostituisce lo 4.0, quindi se chiamarlo un aggiornamento o un nuovo CLR è discutibile.

dire quale versione CLR si sta eseguendo sotto, utilizzare

System.Runtime.InteropServices.RuntimeEnvironment.GetSystemVersion() 
+2

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

+0

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. –

+0

La domanda è ambigua. Ecco perché sia ​​la tua sia la risposta di Hans sono corrette, mentre dici esattamente il contrario :-) – Steven

16

No, è ancora la versione 4.0.30319. La nuova revisione di clr.dll e amici sostituirà quelli esistenti sul tuo computer. Lo stesso schema utilizzato in .NET 3.0, 3.5 e 3.5SP1. Controllare per vedere se 4.5 è installato richiede lo stesso approccio di quelle versioni, è check the registry.

+0

Dove si trovano i file che si considererebbero "CLR"? –

+0

Sono in C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 –

+0

Non penso che possiamo considerare corretta la cartella 'CLR'? –

14

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; 
} 
0

.NET Framework 4.5 è come un service pack per .NET Framework 4 con alcune funzionalità aggiuntive.

+1

Sembra un modo un po 'strano per descriverlo. Immagino sia vero in qualche modo come un'analogia, ma non so se risponde davvero alla domanda: c'è un nuovo CLR. –

+0

Non vedo alcun problema con questo commento. CLR 4.5 sostituisce in realtà CLR 4, quindi deve essere considerato e aggiornato. – Yogee

2

Anche se dubito che questo fosse disponibile nel formato corrente al momento della domanda, ecco lo CLR Guide su MSDN dove mostra tutte le versioni del Framework e la versione CLR che includono. L'ho trovato molto utile, quindi ho pensato di condividerlo.

Accanto a .NET 4.5 si afferma che esso include CLR 4.

0

Scott Hanselman ha un post sul suo blog rivolto a questa domanda. È possibile trovare su di esso qui:

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

Il corto di esso è che ci sono aggiornamenti per il CLR che migliorano le prestazioni e aggiungono nuove librerie. Il CLR utilizzato da .NET 4.5 è compatibile con .NET 4. È considerato un aggiornamento minore. Questi aggiornamenti minori sono ciò che Microsoft chiama un aggiornamento sul posto.

Problemi correlati