Où se trouve le répertoire .NET Framework 4.5?

146

J'ai installé Windows 8, Visual Studio 2012 mais je n'ai pas de répertoire v4.5 dans %WINDIR%\Microsoft.NET\Framework.

Ai-je fait quelque chose de mal ou est-ce que .NET 4.5 est différent des autres?

Si c'est parce que je n'ai pas installé les outils, existe-t-il un ensemble d'outils différents à télécharger? Pour autant que je sache, je suis capable de créer des applications .NET 4.5 OK.

Nick Randell
la source
1
@Gustavo, s'il vous plaît arrêter l' édition cette balise en question. Le nom du produit n'est pas 2011, mais 11, et il existe déjà une balise.
Charles
1
.NET 4.5 est un remplacement sur place. Reportez-vous à ce billet de blog .
Vijay
duplication possible: stackoverflow.com/questions/9546353/…
Houman

Réponses:

152

.NET 4.5 est un remplacement sur place de 4.0 - vous trouverez les assemblys dans le répertoire 4.0.

Voir les blogs de Rick Strahl et Scott Hanselman sur ce sujet.

Vous pouvez également trouver les versions spécifiques dans:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework
Oded
la source
1
Merci, mais qu'en est-il de cette page de MSDN. msdn.microsoft.com/en-us/library/bb397428 . Il mentionne un répertoire 4.5.0.0?
Nick Randell
@NickRandell - Vous avez posé des questions sur les assemblages. Cet article concerne le SDK / les outils.
Oded
@NickRandell - Et comme ce n'est pas sur votre système, regardez la version des assemblys dans le répertoire 4.0 pour voir s'il s'agit bien du 4.5 (comme décrit dans les blogs liés).
Oded
J'ai définitivement 4.5 dans ces répertoires, mais une idée des outils?
Nick Randell
5
FYI: Je viens d'installer la v4.5.2 sur mon Windows Server 2008 R2. Les assemblys sont en fait dans C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319, comme indiqué par Jon Skeet.
harsimranb
86

EDIT: Cette réponse était correcte jusqu'à la mi-2013, mais vous pouvez avoir une version plus récente depuis le grand changement de msbuild . Voir la réponse de Jonny Leeds pour plus de détails.

La version sous estC:\Windows\Microsoft.NET\Framework\v4.0.30319 en fait .NET 4.5. C'est un peu étrange, mais il mscorliby en a certainement des AsyncTaskMethodBuilderetc qui sont utilisés pour async.

.NET 4.5 écrase efficacement .NET 4.

Jon Skeet
la source
Est-ce toujours vrai avec la sortie officielle?
Earlz
@Kiquenet: Je soupçonne que la version finale a été supprimée; il est disponible en tant que package nuget séparé.
Jon Skeet
c'est presque vrai - mais msbuild a déménagé - voir mon article ci
JonnyRaa
@JonnyLeeds: Merci - ont ajouté une référence au billet de blog.
Jon Skeet
28

.NET 4.5 n'est pas une version côte à côte, il remplace les assemblys pour 4.0. Tout comme .NET 3.0, 3.5 et 3.5SP1 ont remplacé les assemblys pour 2.0. Et en a ajouté de nouveaux. La version CLR est toujours 4.0.30319. Vous ne vous souciez que des assemblys de référence, ils sont dans c: \ program files \ reference assemblies.

Hans Passant
la source
Je pensais que 3.0 et 3.5 venaient d'ajouter des assemblages - ne remplaçant pas (disons) mscorlib comme le fait 4.5. Ou était-ce peut-être vrai pour 3.0 mais pas pour 3.5?
Jon Skeet
@Jon - non, ils ont été remplacés. Cela a causé une certaine misère parce que [AssemblyVersion] n'a pas changé. La surcharge supplémentaire de WaitHandle.WaitOne (int) était particulièrement notoire. Il y avait des contre-mesures dans .NET 4 pour éviter ce problème, les assemblys de référence ne sont plus une copie de l'assembly GAC-ed. Ils sont spéciaux, ils ne contiennent pas d'IL.
Hans Passant
Pour les tests sur plusieurs versions, existe-t-il des alternatives simples aux machines virtuelles? Et Windows Update se met-il automatiquement à jour vers 4.5 par défaut?
Tuntable
2
Cela ressemble à une question, pas à un commentaire. Les questions vont en haut de la page, cliquez sur le bouton Poser une question pour y mettre.
Hans Passant
17

Bien que les réponses ci-dessus soient correctes, il convient de noter que MSBuild a changé et qu'il n'est plus livré avec le framework .net, il est livré soit seul, soit avec Visual Studio. En conséquence, ses binaires ont été déplacés ... donc celui que vous obtenez sous le répertoire 4.0.303619 est en fait l'ancien!

Je viens d'être surpris par cela - j'ai trouvé que les redirections de liaison automatique ne fonctionnaient que lors de l'exécution à partir de VisualStudio, mais pas lors de l'exécution de msbuild à partir de la ligne de commande ... l'indice était que des redirections de liaison ont été ajoutées dans VS 2013 (pour cette lecture. net framework 4.5). Si vous ouvrez une invite de commande vs, vous verrez qu'elle l'obtient désormais à partir des fichiers programme, comme le mentionne l'autre article. Alors que j'utilisais un fichier batch sur mon chemin qui était lié à l'ancienne version.

Numéros de version

Sous cadre:

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>

Sous les fichiers programme:

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
la source
5

La page Web est incorrecte et je l'ai signalé à MS et ils la changeront.

Comme déjà indiqué ci-dessus .NET 4.5 est une mise à niveau sur place de 4.0, vous n'aurez donc que Microsoft.NET \ Framework \ v4.0.30319.

La ToolVersion pour MSBuild reste à "4.0".

Adam
la source
3

Le moyen officiel de savoir si vous avez installé 4.5 (et non 4.0) est dans les clés de registre:

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

Relesae DWORD doit être plus grand que 378675 Voici le document Microsoft pour cela

toutes les autres réponses de la vérification de la version mineure après la version 4.0.30319.xxxxx semblent correctes (msbuild.exe -version, ou propriétés de clr.dll), j'avais juste besoin de quelque chose de documenté (pas un blog)

code7amza
la source
Notez \ v4 \, pas \ v4.0 \ qui est différent!
Tuntable