Dov'è la directory di .NET Framework 4.5?


146

Ho installato Windows 8, Visual Studio 2012 ma non ho una directory v4.5 in %WINDIR%\Microsoft.NET\Framework.

Ho fatto qualcosa di sbagliato o .NET 4.5 è diverso dagli altri?

Se è perché non ho installato gli strumenti, c'è una serie di strumenti diversi da scaricare? Per quanto ne so, sono in grado di creare app .NET 4.5 OK.


1
@Gustavo, per favore smetti di modificare quel tag in domande. Il nome del prodotto non è 2011, ma 11 e esiste già un tag esistente.
Charles,

1
.NET 4.5 è un sostituto sul posto. Fare riferimento a questo post sul blog .
Vijay,

Risposte:


152

.NET 4.5 è un sostituto sul posto per 4.0: gli assembly si trovano nella directory 4.0.

Vedi i blog di Rick Strahl e Scott Hanselman su questo argomento.

Puoi anche trovare le versioni specifiche in:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework

1
Grazie, ma per quanto riguarda questa pagina da MSDN. msdn.microsoft.com/en-us/library/bb397428 . Menziona una directory 4.5.0.0?
Nick Randell,

@NickRandell - Hai chiesto delle assemblee. L'articolo parla dell'SDK / degli strumenti.
Oded,

@NickRandell - E poiché non è presente sul tuo sistema, osserva la versione degli assembly nella directory 4.0 per vedere se sono effettivamente i 4.5 (come descritto nei blog collegati).
Oded,

Ho sicuramente 4.5 in quelle directory, ma qualche idea sugli strumenti?
Nick Randell,

5
Cordiali saluti: Ho appena installato v4.5.2 sul mio Windows Server 2008 R2. Gli assembly sono effettivamente in C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319, come indicato da Jon Skeet.
harsimranb,

86

EDIT: questa risposta è stata corretta fino a metà 2013, ma potresti avere una versione più recente dal momento che il grande cambiamento di msbuild . Vedi la risposta di Jonny Leeds per maggiori dettagli.

La versione in C:\Windows\Microsoft.NET\Framework\v4.0.30319realtà è .NET 4.5. È un po 'strano, ma sicuramente mscorlibcontiene AsyncTaskMethodBuilderecc che vengono utilizzati per l'asincrono.

.NET 4.5 sovrascrive efficacemente .NET 4.


È ancora vero con l'uscita ufficiale?
Earlz,

@Kiquenet: sospetto che sia stata rimossa la versione finale; è disponibile come pacchetto nuget separato.
Jon Skeet,

questo è quasi vero - ma msbuild si è spostato - vedi il mio post qui sotto
JonnyRaa

@JonnyLeeds: Grazie - ho aggiunto un riferimento al post del blog.
Jon Skeet,

28

.NET 4.5 non è una versione side-by-side, sostituisce gli assembly per 4.0. Proprio come .NET 3.0, 3.5 e 3.5SP1 hanno sostituito gli assembly per 2.0. E ne ho aggiunti di nuovi. La versione CLR è ancora 4.0.30319. Ti preoccupi solo degli assembly di riferimento, sono in c: \ programmi file \ assembly di riferimento.


Avevo pensato che 3.0 e 3.5 avessero appena aggiunto gli assembly, non sostituendo (diciamo) mscorlib come 4.5. O era forse vero per 3.0 ma non 3.5?
Jon Skeet,

@Jon - no, in realtà sono stati sostituiti. Ciò ha causato alcune sofferenze perché [AssemblyVersion] non è cambiato. Il sovraccarico WaitHandle.WaitOne (int) aggiunto era particolarmente noto. Esistono contromisure in .NET 4 per evitare questo problema, gli assembly di riferimento non sono più una copia dell'assembly GAC-ed. Sono speciali, non contengono IL.
Hans Passant

Per i test su più versioni, esistono alternative facili alle macchine virtuali? E Windows Update si aggiorna automaticamente alla 4.5 per impostazione predefinita?
Montabile il

2
Sembra una domanda, non un commento. Le domande vanno nella parte superiore della pagina, fai clic sul pulsante Poni domanda per inserirlo.
Hans Passant,

17

Mentre le risposte di cui sopra sono corrette, vale la pena notare che MSBuild è cambiato e non viene più fornito con il framework .net, ma viene fornito da solo o con Visual Studio. Di conseguenza i binari sono stati spostati ... quindi quello che trovi nella directory 4.0.303619 è in realtà quello vecchio!

Sono appena stato sorpreso da questo - ho scoperto che i reindirizzamenti di associazione automatici funzionavano solo quando si eseguiva da VisualStudio ma non quando si eseguiva msbuild dalla riga di comando ... l'idea era che i reindirizzamenti di associazione fossero stati aggiunti in VS 2013 (per quella lettura. net framework 4.5). Se apri un prompt dei comandi vs vedrai che ora lo ottiene dai file di programma come menziona l'altro articolo. Mentre stavo usando un file batch sul mio percorso che si collegava alla vecchia versione.

Numeri di versione

Nell'ambito:

PS C:\Windows\Microsoft.NET\Framework\v4.0.30319> .\msbuild.exe -version
Microsoft (R) Build Engine version 4.0.30319.33440
[Microsoft .NET Framework, version 4.0.30319.34014]
Copyright (C) Microsoft Corporation. All rights reserved.

4.0.30319.33440PS C:\Windows\Microsoft.NET\Framework\v4.0.30319>

Sotto i file di programma:

PS C:\Program Files (x86)\MSBuild\12.0\Bin> .\MSBuild.exe -version
Microsoft (R) Build Engine version 12.0.21005.1
[Microsoft .NET Framework, version 4.0.30319.34014]
Copyright (C) Microsoft Corporation. All rights reserved.

12.0.21005.1PS C:\Program Files (x86)\MSBuild\12.0\Bin>

5

La pagina web non è corretta e l'ho segnalato a MS e lo faranno cambiare.

Come già detto in precedenza, .NET 4.5 è un aggiornamento sul posto di 4.0, quindi avrai solo Microsoft.NET \ Framework \ v4.0.30319.

ToolVersion per MSBuild rimane su "4.0".


3

Il modo ufficiale per scoprire se hai installato 4.5 (e non 4.0) è nelle chiavi di registro:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full

Relesae DWORD deve essere più grande di 378675 Ecco il documento Microsoft per questo

tutte le altre risposte del controllo della versione secondaria dopo 4.0.30319.xxxxx sembrano corrette (msvers.exe -version o proprietà di clr.dll), avevo solo bisogno di qualcosa di documentato (non un blog)


Nota \ v4 \, non \ v4.0 \ che è diverso!
Montabile il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.