Где находится каталог .NET Framework 4.5?

146

Я установил Windows 8, Visual Studio 2012, но у меня нет каталога v4.5 %WINDIR%\Microsoft.NET\Framework.

Я сделал что-то не так, или .NET 4.5 отличается от других?

Если это потому, что я не установил инструменты, есть ли набор различных инструментов для загрузки? Насколько я могу судить, я могу создавать приложения .NET 4.5.

Ник Рэнделл
источник
1
@ Густаво, пожалуйста, прекратите редактировать этот тег на вопросы. Название продукта не 2011, а 11, и уже существует тег.
Чарльз
1
.NET 4.5 - это замена на месте. Обратитесь к этому сообщению в блоге .
Виджей
возможный дубликат: stackoverflow.com/questions/9546353/…
Хоуман

Ответы:

152

.NET 4.5 - это замена для 4.0 - сборки находятся в каталоге 4.0.

Посмотрите блоги Рика Стрэла и Скотта Хансельмана на эту тему.

Вы также можете найти конкретные версии в:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework
Одед
источник
1
Спасибо, но как насчет этой страницы из MSDN. msdn.microsoft.com/en-us/library/bb397428 . Упоминается каталог 4.5.0.0?
Ник Рэнделл
@NickRandell - Вы спрашивали о сборках. Та статья как про SDK / инструменты.
Одд
@NickRandell - И поскольку это не в вашей системе, посмотрите на версию сборок в каталоге 4.0, чтобы увидеть, действительно ли они 4.5 (как описано в связанных блогах).
Одед
Я определенно получил 4,5 в этих каталогах, но есть идеи об инструментах?
Ник Рэнделл
5
К вашему сведению: я только что установил v4.5.2 на Windows Server 2008 R2. Сборки на самом деле находятся в C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319, как указал Джон Скит.
harsimranb
86

РЕДАКТИРОВАТЬ: Этот ответ был правильным до середины 2013 года, но у вас может быть более свежая версия, так как большие изменения в msbuild . Смотрите ответ от Джонни Лидса для более подробной информации.

Версия под C:\Windows\Microsoft.NET\Framework\v4.0.30319фактически является .NET 4.5. Это немного странно, но, безусловно, mscorlibесть и AsyncTaskMethodBuilderт. Д., Которые используются для асинхронного.

.NET 4.5 эффективно перезаписывает .NET 4.

Джон Скит
источник
Это все еще верно с официальным релизом?
Эрлз
@Kiquenet: я подозреваю, что был удален финальный релиз; это доступно как отдельный пакет nuget.
Джон Скит
это почти верно - но msbuild переехал - см. мой пост ниже
JonnyRaa
@JonnyLeeds: Спасибо - добавили ссылку на пост в блоге.
Джон Скит
28

.NET 4.5 не является параллельной версией, она заменяет сборки на 4.0. Так же, как .NET 3.0, 3.5 и 3.5SP1 заменили сборки на 2.0. И добавил несколько новых. Версия CLR все еще 4.0.30319. Вы заботитесь только о ссылочных сборках, они находятся в каталоге c: \ program files \ reference.

Ганс Пассант
источник
Я думал, что 3.0 и 3.5 только что добавили сборки - не заменяя, скажем, mscorlib, как 4.5. Или это было возможно для 3.0, но не для 3.5?
Джон Скит
@ Джон - нет, их на самом деле заменили. Это вызвало некоторые страдания, потому что [AssemblyVersion] не изменилась. Добавленная перегрузка WaitHandle.WaitOne (int) была особенно печально известна. В .NET 4 были предприняты контрмеры, чтобы избежать этой проблемы, эталонные сборки больше не являются копией сборки GAC. Они особенные, они не содержат IL.
Ганс Пассант
Есть ли какие-либо простые альтернативы виртуальным машинам для тестирования на нескольких версиях? А Windows Update автоматически обновляется до 4.5 по умолчанию?
Tuntable
2
Это похоже на вопрос, а не комментарий. Вопросы идут вверху страницы, нажмите кнопку Задать вопрос, чтобы разместить их там.
Ганс
17

Хотя приведенные выше ответы верны, стоит отметить, что MSBuild изменился и больше не поставляется с платформой .net, но поставляется отдельно или с Visual Studio. В результате его двоичные файлы были перемещены ... так что тот, который вы получаете в каталоге 4.0.303619, на самом деле является старым!

Я только что поймал это - я обнаружил, что перенаправления автоматической привязки работали только при запуске из VisualStudio, но не при запуске msbuild из командной строки ... подсказка состояла в том, что перенаправления привязывания были добавлены в VS 2013 (для этого чтения. чистый каркас 4.5). Если вы откроете командную строку vs, то увидите, что теперь она получает ее из программных файлов, как упоминалось в другой статье. Принимая во внимание, что я использовал командный файл на моем пути, который связан со старой версией.

Номера версий

Под рамками:

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>

Под файлами программы:

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
источник
5

Веб-страница неверна, и я указал на это MS, и они получат это изменение.

Как уже говорилось выше, .NET 4.5 - это обновление 4.0 на месте, поэтому у вас будет только Microsoft.NET \ Framework \ v4.0.30319.

ToolVersion для MSBuild остается на уровне "4.0".

Адам
источник
3

Официальный способ узнать, установлен ли у вас 4.5 (а не 4.0), в ключах реестра:

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

Relesae DWORD должен быть больше 378675 Вот документ Microsoft для него

все остальные ответы проверки минорной версии после 4.0.30319.xxxxx кажутся правильными, хотя (msbuild.exe -version или свойства clr.dll), мне просто нужно что-то задокументировано (не блог)

code7amza
источник
Обратите внимание, \ v4 \, а не \ v4.0 \, который отличается!
Tuntable