.NET Framework 4.5目录在哪里?


146

我已经安装了Windows 8,Visual Studio 2012,但其中没有v4.5目录%WINDIR%\Microsoft.NET\Framework

我做错了什么,还是.NET 4.5与众不同?

如果是因为我尚未安装工具,那么是否有一组可供下载的其他工具?据我所知,我能够构建.NET 4.5应用程序。


1
@Gustavo,停止将标签编辑成问题。产品名称不是 2011,而是11,并且已经有一个现有标签。
查尔斯

1
.NET 4.5是就地替换。请参阅此博客文章
维杰

Answers:


152

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

请参阅Rick StrahlScott Hanselman撰写的有关此主题的博客。

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

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework

1
谢谢,但是MSDN上的此页面呢?msdn.microsoft.com/zh-CN/library/bb397428。它提到了4.5.0.0目录?
尼克·兰德尔

@NickRandell-您询问了程序集。那篇关于SDK /工具的文章。
Oded

@NickRandell-既然这不在您的系统上,请查看4.0目录中的程序集版本,以查看它们是否确实是4.5(如链接博客中所述)。
2012年

我肯定在那些目录中有4.5,但是对这些工具有任何想法吗?
尼克·兰德尔

5
仅供参考:我刚刚在Windows Server 2008 R2上安装了v4.5.2。正如乔恩·斯凯特(Jon Skeet)所指出的那样,程序集实际上位于C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319中。
harsimranb 2015年

86

编辑:这个答案在2013年中之前是正确的,但是自从大型msbuild更改以来,您可能已拥有较新的版本。有关更多详细信息,请参见Jonny Leeds的答案

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

.NET 4.5有效覆盖 .NET 4。


官方发行版仍然如此吗?
Earlz 2012年

@Kiquenet:我怀疑最终版本已被删除;它可以作为单独的nuget包使用。
乔恩·斯基特

这几乎是正确的-但msbuild已移动-请参阅以下我的帖子
JonnyRaa 2014年

@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只是添加了程序集-不像4.5那样替换(例如)mscorlib。还是3.0而不是3.5可能是正确的?
乔恩·斯基特

@Jon-不,他们实际上被替换了。由于[AssemblyVersion]不变,因此造成了一些痛苦。添加的WaitHandle.WaitOne(int)重载尤其臭名昭著。.NET 4中有避免该问题的对策,参考程序集不再是GAC版程序集的副本。它们很特殊,不包含IL。
汉斯·帕桑

对于跨多个版本的测试,是否有虚拟机的简单替代方案?Windows Update是否默认自动更新为4.5?
调谐的'17

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>

5

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

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

MSBuild的ToolVersion仍为“ 4.0”。


3

在注册表项中,查找是否已安装4.5(而非4.0)的官方方法是:

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

Relesae DWORD必须大于378675以下是微软的文档

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


注意\ v4 \,而不是\ v4.0 \,这是不同的!
调谐的'17
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.