Gdzie jest katalog .NET Framework 4.5?

146

Zainstalowałem system Windows 8, Visual Studio 2012, ale nie mam katalogu w wersji 4.5 w %WINDIR%\Microsoft.NET\Framework.

Czy zrobiłem coś źle, czy też .NET 4.5 różni się od innych?

Jeśli dzieje się tak, ponieważ nie zainstalowałem narzędzi, czy jest do pobrania zestaw różnych narzędzi? O ile wiem, jestem w stanie zbudować aplikacje .NET 4.5 OK.

Nick Randell
źródło
1
@Gustavo, proszę przestać edycji tego znacznika do pytań. Nazwa produktu to nie 2011, ale 11 i istnieje już tag.
Charles,
1
NET 4.5 jest zamiennikiem w miejscu. Zapoznaj się z tym postem na blogu .
Vijay
możliwy duplikat: stackoverflow.com/questions/9546353/…
Houman

Odpowiedzi:

152

NET 4.5 jest zamiennikiem wersji 4.0 - zestawy można znaleźć w katalogu 4.0.

Zobacz blogi Ricka Strahla i Scotta Hanselmana na ten temat.

Poszczególne wersje można również znaleźć w:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework
Oded
źródło
1
Dzięki, ale co z tą stroną z MSDN. msdn.microsoft.com/en-us/library/bb397428 . Wspomina o katalogu 4.5.0.0?
Nick Randell
@NickRandell - Pytałeś o zgromadzenia. Ten artykuł dotyczy zestawu SDK / narzędzi.
Oded
@NickRandell - A ponieważ tego nie ma w twoim systemie, spójrz na wersję zestawów w katalogu 4.0, aby sprawdzić, czy rzeczywiście są to 4.5 (jak opisano w połączonych blogach).
Oded
Zdecydowanie mam 4.5 w tych katalogach, ale masz pojęcie o narzędziach?
Nick Randell,
5
Do Twojej wiadomości: właśnie zainstalowałem v4.5.2 na moim Windows Server 2008 R2. Zestawy znajdują się w rzeczywistości w C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319, jak wskazał Jon Skeet.
harsimranb
86

EDYCJA: Ta odpowiedź była poprawna do połowy 2013 r., Ale możesz mieć nowszą wersję od czasu dużej zmiany w msbuild . Więcej informacji można znaleźć w odpowiedzi Jonny'ego Leeds .

Wersja w C:\Windows\Microsoft.NET\Framework\v4.0.30319rzeczywistości to .NET 4.5. To trochę dziwne, ale z pewnością mscorlibzawiera AsyncTaskMethodBuilderitp., Które są używane do asynchronizacji.

.NET 4.5 skutecznie zastępuje .NET 4.

Jon Skeet
źródło
Czy to nadal prawda w przypadku oficjalnego wydania?
Earlz,
@Kiquenet: Podejrzewam, że zostało usunięte ostateczne wydanie; jest dostępny jako oddzielny pakiet nuget.
Jon Skeet
to prawie prawda - ale msbuild się przeniósł - zobacz mój post poniżej
JonnyRaa
@JonnyLeeds: Dzięki - dodaliśmy odnośnik do wpisu na blogu.
Jon Skeet,
28

.NET 4.5 nie jest wersją side-by-side, zastępuje zestawy w wersji 4.0. Podobnie jak .NET 3.0, 3.5 i 3.5SP1 zastąpiły zestawy w wersji 2.0. I dodał kilka nowych. Wersja CLR to nadal 4.0.30319. Dbasz tylko o zestawy referencyjne, są one w c: \ program files \ reference assemblies.

Hans Passant
źródło
Myślałem, że 3.0 i 3.5 po prostu dodały złożenia - nie zastępując (powiedzmy) mscorlib, jak robi to 4.5. A może tak było w przypadku wersji 3.0, ale nie 3.5?
Jon Skeet
@Jon - nie, faktycznie zostały zastąpione. To spowodowało trochę nieszczęścia, ponieważ [AssemblyVersion] nie uległo zmianie. Szczególnie notoryczne było dodanie przeciążenia WaitHandle.WaitOne (int). W .NET 4 istniały środki zaradcze, aby uniknąć tego problemu, zestawy referencyjne nie są już kopią zestawu GAC. Są wyjątkowe, nie zawierają IL.
Hans Passant
Czy w przypadku testowania w wielu wersjach są jakieś łatwe alternatywy dla maszyn wirtualnych? Czy usługa Windows Update automatycznie aktualizuje się domyślnie do wersji 4.5?
Tuntable
2
To wygląda jak pytanie, a nie komentarz. Pytania pojawiają się u góry strony, kliknij przycisk Zadaj pytanie, aby je tam umieścić.
Hans Passant
17

Chociaż powyższe odpowiedzi są poprawne, warto zauważyć, że MSBuild zmienił się i nie jest już dostarczany z frameworkiem .net, jest dostępny samodzielnie lub z Visual Studio. W rezultacie zostały przeniesione pliki binarne ... więc ten, który otrzymasz w katalogu 4.0.303619, jest w rzeczywistości stary!

Właśnie to mnie zaskoczyło - zauważyłem, że automatyczne przekierowania powiązań działają tylko podczas uruchamiania z VisualStudio, ale nie podczas uruchamiania msbuild z wiersza poleceń ... wskazówka była taka, że ​​przekierowania powiązań zostały dodane w VS 2013 (dla tego odczytu. Net Framework 4.5). Jeśli otworzysz wiersz polecenia vs, zobaczysz, że teraz pobiera go z plików programu, jak wspomniano w innym artykule. Podczas gdy ja korzystałem z pliku wsadowego na mojej ścieżce, który był powiązany ze starą wersją.

Numery wersji

W ramach:

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>

W plikach programu:

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
źródło
5

Strona internetowa jest nieprawidłowa i zwróciłem na to uwagę MS, a oni to zmienią.

Jak już wspomniano powyżej .NET 4.5 to uaktualnienie w miejscu do wersji 4.0, więc będziesz mieć tylko Microsoft.NET \ Framework \ v4.0.30319.

ToolVersion dla MSBuild pozostaje na „4,0”.

Adam
źródło
3

Oficjalnym sposobem sprawdzenia, czy masz zainstalowaną wersję 4.5 (a nie 4.0), są klucze rejestru:

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

Relesae DWORD musi być większy niż 378675 Oto Microsoft doc dla niego

wszystkie inne odpowiedzi dotyczące sprawdzania wersji pomocniczej po 4.0.30319.xxxxx wydają się poprawne (wersja msbuild.exe lub właściwości clr.dll), potrzebowałem tylko czegoś udokumentowanego (nie bloga)

code7amza
źródło
Uwaga \ v4 \, a nie \ v4.0 \, co jest inne!
Tuntable