Wo befindet sich das .NET Framework 4.5-Verzeichnis?

146

Ich habe Windows 8, Visual Studio 2012 installiert, habe aber kein v4.5-Verzeichnis %WINDIR%\Microsoft.NET\Framework.

Habe ich etwas falsch gemacht oder unterscheidet sich .NET 4.5 von anderen?

Wenn ich die Tools nicht installiert habe, gibt es eine Reihe verschiedener Tools zum Herunterladen? Soweit ich das beurteilen kann, kann ich .NET 4.5-Apps in Ordnung erstellen.

Nick Randell
quelle
1
@Gustavo, bitte hör auf, dieses Tag in Fragen zu bearbeiten. Der Produktname lautet nicht 2011, sondern 11, und es ist bereits ein Tag vorhanden.
Charles
1
.NET 4.5 ist ein Ersatz. Lesen Sie diesen Blog-Beitrag .
Vijay
Mögliches Duplikat: stackoverflow.com/questions/9546353/…
Houman

Antworten:

152

.NET 4.5 ist ein Ersatz für 4.0. Sie finden die Assemblys im 4.0-Verzeichnis.

Siehe die Blogs von Rick Strahl und Scott Hanselman zu diesem Thema.

Sie finden die spezifischen Versionen auch in:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework
Oded
quelle
1
Danke, aber was ist mit dieser Seite von MSDN? msdn.microsoft.com/en-us/library/bb397428 . Es erwähnt ein 4.5.0.0-Verzeichnis?
Nick Randell
@NickRandell - Sie haben nach den Baugruppen gefragt. Dieser Artikel über das SDK / Tools.
Oded
@NickRandell - Und da dies nicht auf Ihrem System vorhanden ist, überprüfen Sie die Version der Assemblys im 4.0-Verzeichnis, um festzustellen, ob es sich tatsächlich um 4.5 handelt (wie in den verknüpften Blogs beschrieben).
Oded
Ich habe definitiv 4.5 in diesen Verzeichnissen, aber eine Idee über die Tools?
Nick Randell
5
Zu Ihrer Information: Ich habe gerade v4.5.2 auf meinem Windows Server 2008 R2 installiert. Die Assemblys befinden sich tatsächlich in C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319, wie von Jon Skeet angegeben.
Harsimranb
86

BEARBEITEN: Diese Antwort war bis Mitte 2013 korrekt, aber Sie haben möglicherweise eine neuere Version seit der großen Änderung von msbuild . Weitere Informationen finden Sie in der Antwort von Jonny Leeds .

Die Version unter C:\Windows\Microsoft.NET\Framework\v4.0.30319tatsächlich ist .NET 4.5. Es ist ein wenig seltsam, aber sicherlich mscorlibenthält es AsyncTaskMethodBuilderusw., die für Async verwendet werden.

.NET 4.5 überschreibt effektiv .NET 4.

Jon Skeet
quelle
Gilt das noch für die offizielle Veröffentlichung?
Earlz
@Kiquenet: Ich vermute, dass die endgültige Version entfernt wurde; Es ist als separates Nuget-Paket erhältlich.
Jon Skeet
Dies ist fast wahr - aber msbuild ist umgezogen - siehe meinen Beitrag unten
JonnyRaa
@JonnyLeeds: Danke - habe einen Verweis auf den Blog-Beitrag hinzugefügt.
Jon Skeet
28

.NET 4.5 ist keine Side-by-Side-Version, sondern ersetzt die Assemblys für 4.0. Ähnlich wie .NET 3.0 ersetzten 3.5 und 3.5SP1 die Assemblys für 2.0. Und einige neue hinzugefügt. Die CLR-Version ist immer noch 4.0.30319. Sie kümmern sich nur um die Referenzassemblys, sie befinden sich in c: \ Programme \ Referenzassemblys.

Hans Passant
quelle
Ich hatte gedacht, 3.0 und 3.5 haben gerade Assemblys hinzugefügt - und nicht mscorlib ersetzt (sagen wir) wie 4.5. Oder stimmte das vielleicht für 3.0, aber nicht für 3.5?
Jon Skeet
@ Jon - nein, sie wurden tatsächlich ersetzt. Das verursachte etwas Elend, weil sich die [AssemblyVersion] nicht geändert hatte. Die hinzugefügte Überlastung von WaitHandle.WaitOne (int) war besonders berüchtigt. In .NET 4 gab es Gegenmaßnahmen, um dieses Problem zu vermeiden. Die Referenzassemblys sind keine Kopie der GAC-ed-Assembly mehr. Sie sind speziell, sie enthalten keine IL.
Hans Passant
Gibt es zum Testen mehrerer Versionen einfache Alternativen zu virtuellen Maschinen? Und wird Windows Update standardmäßig automatisch auf 4.5 aktualisiert?
Tuntable
2
Das sieht nach einer Frage aus, nicht nach einem Kommentar. Fragen werden oben auf der Seite angezeigt. Klicken Sie auf die Schaltfläche Frage stellen, um sie dort abzulegen.
Hans Passant
17

Obwohl die obigen Antworten richtig sind, ist es erwähnenswert, dass sich MSBuild geändert hat und nicht mehr mit dem .net-Framework geliefert wird, sondern entweder eigenständig oder mit Visual Studio. Infolgedessen haben sich die Binärdateien verschoben ... also ist diejenige, die Sie im Verzeichnis 4.0.303619 erhalten, tatsächlich die alte!

Ich bin gerade davon überrascht worden - ich habe festgestellt, dass automatische Bindungsumleitungen nur funktionieren, wenn sie über VisualStudio ausgeführt werden, nicht jedoch, wenn msbuild über die Befehlszeile ausgeführt wird. Der Hinweis war, dass Bindungsumleitungen in VS 2013 hinzugefügt wurden (für diesen Lesevorgang). Netzrahmen 4.5). Wenn Sie eine vs-Eingabeaufforderung öffnen, wird sie jetzt aus Programmdateien abgerufen, wie im anderen Artikel erwähnt. Während ich auf meinem Pfad eine Batch-Datei verwendete, die mit der alten Version verknüpft war.

Versionsnummern

Im Rahmen:

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>

Unter Programmdateien:

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>
JonnyRaa
quelle
5

Die Webseite ist falsch und ich habe MS darauf hingewiesen, und sie werden es ändern lassen.

Wie bereits oben erwähnt, handelt es sich bei .NET 4.5 um ein direktes Upgrade von 4.0, sodass Sie nur Microsoft.NET \ Framework \ v4.0.30319 verwenden.

Die ToolVersion für MSBuild bleibt bei "4.0".

Adam
quelle
3

Der offizielle Weg, um herauszufinden, ob Sie 4.5 installiert haben (und nicht 4.0), finden Sie in den Registrierungsschlüsseln:

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

Relesae DWORD muss größer als 378675 sein. Hier ist das Microsoft- Dokument dafür

Alle anderen Antworten zum Überprüfen der Nebenversion nach 4.0.30319.xxxxx scheinen jedoch korrekt zu sein (msbuild.exe -version oder Eigenschaften von clr.dll). Ich brauchte nur etwas Dokumentiertes (kein Blog).

code7amza
quelle
Beachten Sie \ v4 \, nicht \ v4.0 \, was anders ist!
Tuntable