Onde está o diretório do .NET Framework 4.5?

146

Instalei o Windows 8, Visual Studio 2012, mas não tenho um diretório v4.5 %WINDIR%\Microsoft.NET\Framework.

Fiz algo errado ou o .NET 4.5 é diferente dos outros?

Se é porque eu não instalei as ferramentas, existe um conjunto de ferramentas diferentes para fazer o download? Tanto quanto posso dizer, sou capaz de criar aplicativos .NET 4.5 OK.

Nick Randell
fonte
1
@Gustavo, por favor, pare de editar essa marca em perguntas. O nome do produto não é 2011, mas 11, e já existe uma tag.
Charles
1
O .NET 4.5 é uma substituição no local. Consulte esta postagem do blog .
Vijay
possível duplicado: stackoverflow.com/questions/9546353/…
Houman 14/12

Respostas:

152

O .NET 4.5 é um substituto para o 4.0 - você encontrará os assemblies no diretório 4.0.

Veja os blogs de Rick Strahl e Scott Hanselman sobre este tópico.

Você também pode encontrar as versões específicas em:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework
Oded
fonte
1
Obrigado, mas e esta página do MSDN. msdn.microsoft.com/en-us/library/bb397428 . Menciona um diretório 4.5.0.0?
Nick Randell
@NickRandell - Você perguntou sobre as assembléias. Esse artigo, como sobre o SDK / ferramentas.
Oded
@NickRandell - E como isso não está no seu sistema, observe a versão dos assemblies no diretório 4.0 para ver se eles são realmente os 4.5 (conforme descrito nos blogs vinculados).
Oded
Eu definitivamente tenho 4.5 nesses diretórios, mas alguma idéia sobre as ferramentas?
Nick Randell
5
FYI: Acabei de instalar a v4.5.2 no meu Windows Server 2008 R2. Na verdade, os assemblies estão em C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319, conforme apontado por Jon Skeet.
harsimranb
86

EDIT: Esta resposta estava correta até meados de 2013, mas você pode ter uma versão mais recente desde a grande alteração no msbuild . Veja a resposta de Jonny Leeds para mais detalhes.

A versão em C:\Windows\Microsoft.NET\Framework\v4.0.30319realmente é .NET 4.5. É um pouco estranho, mas certamente mscorlibcontém AsyncTaskMethodBuilderetc que são usados ​​para assíncrono.

O .NET 4.5 substitui efetivamente o .NET 4.

Jon Skeet
fonte
Isso ainda é verdade com o lançamento oficial?
Earlz 7/09/12
@Kiquenet: Eu suspeito que foi removido o lançamento final; está disponível como um pacote de pepitas separado.
Jon Skeet
isso é quase verdade - mas msbuild mudou - veja meu post abaixo
JonnyRaa
@ JonnyLeeds: Obrigado - adicionou uma referência à postagem do blog.
precisa saber é o seguinte
28

O .NET 4.5 não é uma versão lado a lado, ele substitui os assemblies para 4.0. Muito parecido com o .NET 3.0, 3.5 e 3.5SP1, substituiu os assemblies pelo 2.0. E adicionou alguns novos. A versão CLR ainda é 4.0.30319. Você se preocupa apenas com os assemblies de referência, eles estão em c: \ arquivos de programas \ assemblies de referência.

Hans Passant
fonte
Eu pensei que o 3.0 e o 3.5 adicionassem assemblies - não substituindo (digamos) o mscorlib como o 4.5. Ou isso foi verdade para o 3.0, mas não para o 3.5?
precisa
@ Jon - não, eles realmente foram substituídos. Isso causou alguma miséria porque a [AssemblyVersion] não mudou. A sobrecarga WaitHandle.WaitOne (int) adicionada foi especialmente notória. Havia contra-medidas no .NET 4 para evitar esse problema, os assemblies de referência não são mais uma cópia do assembly do GAC-ed. Eles são especiais, não contêm IL.
precisa
Para testes em várias versões, existem alternativas fáceis para máquinas virtuais? E o Windows Update atualiza automaticamente automaticamente para 4.5 por padrão?
Tuntable
2
Parece uma pergunta, não um comentário. As perguntas estão na parte superior da página, clique no botão Fazer pergunta para colocá-lo lá.
Hans Passant
17

Embora as respostas acima estejam corretas, é importante notar que o MSBuild foi alterado e não é mais fornecido com a estrutura .net, mas é isolado ou com o visual studio. Como resultado, os binários foram movidos ... então o que você obtém no diretório 4.0.303619 é realmente o antigo!

Acabei de ser pego por isso - descobri que os redirecionamentos de ligação automáticos estavam funcionando apenas ao executar no VisualStudio, mas não ao executar o msbuild na linha de comando ... a pista era que os redirecionamentos de ligação foram adicionados no VS 2013 (para essa leitura. quadro líquido 4.5). Se você abrir um prompt de comando vs, verá que agora o obtém dos arquivos de programa, como o outro artigo menciona. Considerando que eu estava usando um arquivo em lotes no meu caminho que vinculado à versão antiga.

Números de versão

No âmbito:

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>

Em arquivos de programa:

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
fonte
5

A página da Web está incorreta e eu indiquei isso para a Microsoft e eles serão alterados.

Como já mencionado acima, o .NET 4.5 é uma atualização in-loco do 4.0, portanto, você só terá o Microsoft.NET \ Framework \ v4.0.30319.

O ToolVersion for MSBuild permanece em "4.0".

Adão
fonte
3

A maneira oficial de descobrir se você possui o 4.5 instalado (e não o 4.0) está nas chaves do Registro:

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

O DWORD precisa ser maior que 378675 Aqui está o documento da Microsoft para ele

todas as outras respostas da verificação da versão secundária após 4.0.30319.xxxxx parecem corretas (versão do msbuild.exe ou propriedades do clr.dll), eu só precisava de algo documentado (não um blog)

code7amza
fonte
Observe \ v4 \, não \ v4.0 \, que é diferente!
Tuntable