150

我已经安装了 Windows 8、Visual Studio 2012 但在%WINDIR%\Microsoft.NET\Framework.

我做错了什么,还是 .NET 4.5 与其他版本不同?

如果是因为我没有安装工具,有没有一套不同的工具可以下载?据我所知,我可以构建 .NET 4.5 应用程序。

4

6 回答 6

156

.NET 4.5 是 4.0 的就地替代品 - 您将在 4.0 目录中找到程序集。

请参阅Rick StrahlScott Hanselman关于此主题的博客。

您还可以在以下位置找到特定版本:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework
于 2012-08-22T09:53:00.323 回答
90

编辑:这个答案在 2013 年年中之前是正确的,但你可能有一个更新的版本,因为大的 msbuild 变化。有关更多详细信息,请参阅Jonny Leeds 的答案

C:\Windows\Microsoft.NET\Framework\v4.0.30319实际下的版本.NET 4.5。这有点奇怪,但肯定mscorlib包含AsyncTaskMethodBuilder用于异步的 etc。

.NET 4.5 有效地覆盖了.NET 4。

于 2012-03-03T13:13:32.180 回答
28

.NET 4.5不是并行版本,它取代了 4.0 的程序集。很像 .NET 3.0、3.5 和 3.5SP1 替换了 2.0 的程序集。并添加了一些新的。CLR 版本仍然是 4.0.30319。您只关心引用程序集,它们位于 c:\program files\reference 程序集中。

于 2012-03-03T13:15:20.063 回答
17

虽然上述答案是正确的,但值得注意的是MSBuild 已经改变并且不再随 .net 框架一起提供,它要么是独立的,要么是与 Visual Studio 一起提供的。结果它的二进制文件被移动了......所以你在 4.0.303619 目录下得到的那个实际上是旧的!

我刚刚被这个发现 - 我发现自动绑定重定向仅在从 VisualStudio 运行时才起作用,但在从命令行运行 msbuild 时不起作用......线索是在 VS 2013 中添加了绑定重定向(对于那个 read .净框架 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>
于 2014-09-25T13:16:36.953 回答
6

该网页不正确,我已向 MS 指出了这一点,他们将对其进行更改。

如上所述,.NET 4.5 是 4.0 的就地升级,因此您将只有 Microsoft.NET\Framework\v4.0.30319。

MSBuild 的 ToolVersion 仍为“4.0”。

于 2012-08-22T11:52:57.540 回答
3

确定您是否安装了 4.5(而不是 4.0)的官方方法是在注册表项中:

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

Relesae DWORD 需要大于 378675 这是Microsoft doc

不过,在 4.0.30319.xxxxx 之后检查次要版本的所有其他答案似乎都是正确的(msbuild.exe -version 或 clr.dll 的属性),我只需要记录一些东西(不是博客)

于 2016-07-12T15:44:37.037 回答