Visual Studio 2010中缺少.NET Framework 4

8

我刚安装了Visual Studio 2010,但是当我创建一个新的项目时,目标框架选项中没有出现Framework 4。我知道Framework 4已经正确安装,因为在IIS中创建了新的v4应用程序池。但由于某种原因,在Visual Studio中它就是没有显示出来。我尝试修复.NET 4并重新安装Visual Studio,但仍然没有成功。还有其他人遇到过这个问题或者知道如何解决吗?


你想要创建什么样的项目? - Vladislav Rastrusny
任何使用 .net 4.0 的项目。 - sagescrub
12个回答

9

Morvader,感谢您的有益评论。我尝试卸载 .net 4.0 和 VS10,并重新安装了 VS10,让它安装 .net。我验证了这些安装,但是当我检查注册表项时,发现 VS10 的条目已经丢失了。我手动添加了它们,但是在创建新项目的选项中仍然没有出现 .net 4.0。有什么想法吗?重新安装 Windows 是我的最后一招! - sagescrub
@Noel,你是在安装FW 4.0客户端框架还是完整版本? - Morvader
据我所知,我安装了完整版本。如何检查这一点? - sagescrub

7

我曾经遇到过同样的问题,后来发现需要安装 Microsoft .NET Framework 4 Multi-Targeting Pack 才能解决。没有其他方法可以解决这个问题。


谢谢你的回复,skaz!我以为这已经包含在VS中了。你是如何安装或修复框架4的多目标包的? - sagescrub
1
这应该已经被包含在VS中了 - 我曾试图卸载它来修复其他问题。当我安装http://www.microsoft.com/downloads/en/details.aspx?FamilyID=04704acf-a63a-4f97-952c-8b51b34b00ce时,它被重新安装。 - skaz
我安装了Windows Phone开发工具,现在我可以创建Windows Phone项目,但仍然没有.NET 4.0。 - sagescrub
在我的Windows7x64机器上运行良好。谢谢! - Michal B.

7
我尝试了所有的方法但是都没有成功。根据这个链接,你可以通过从另一台电脑复制frameworklist.xml文件并将其粘贴到你的系统中来解决这个问题。

我曾遇到同样的问题并已经解决。我发现在C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\RedistList文件夹中没有FrameworkList.xml文件。但是我注意到,在安装了.Net Framework 4且可在VS 2010中访问的计算机上有此文件。于是,我将此文件从该计算机复制到我的计算机上,并重新启动了VS 2010。之后,.Net Framework 4就出现在下拉列表中了。

我在此附上了frameworklist.xml文件:下载 frameworklist.xml


1
这是可在我的 Visual Studio 2010 版本中使用的有效解决方案。非常感谢! - ahmadnaziF
在我的情况下,不仅丢失了“FrameworkList.xml”,而且位于“C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0 \ RedistList”下的所有DLL也都丢失了。从另一台计算机复制XML和DLL解决了这个问题。 - Alex Sanséau
干得好,这解决了我的问题,之前在网上尝试了所有其他方法。顺便说一句,微软的目标版本选择器在多年中给我带来了无数问题。 - petey m
这个解决方案在2023年也对我有效(哈哈)。从Win7机器复制了RedistList。 - szx

3

导致缺少 .Net4 问题的更改:
1.
我更改了HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion下的一些注册表设置
CommonFilesDir
CommonFilesDir (x86)
CommonW6432Dir
ProgramFilesDir
ProgramFilesDir (x86)
ProgramW6432Dir
所有这些都从C:驱动器移动到另一个驱动器(在我的情况下是E:)

2.
我更改了一些用户文件夹的位置:
C:\Users\\AppData\LocalLow
C:\Users\\AppData\Roaming
这些已经通过属性->路径->“移动”按钮从C:驱动器移动到F:驱动器。

将1.恢复回C驱动器并在C:\Users\\AppData中创建符号链接到新位置后,它再次工作了(注意:在恢复更改之前,我卸载了VS,并在之后重新安装了)。
(使用以下命令创建链接:mklink /d C:\Users\\AppData\LocalLow E:\Data\LocalLow)

我不能说这两个更改是否都真的有必要,因为我同时更改了两者。
但最终它又能工作了 ;)

问候,
Frostregen


这就是我的经历!我已将程序文件x86和64移动到另一个驱动器。我没有触及公共文件或应用数据。卸载了与VS相关的所有内容,将默认程序文件更改回C并重新安装,现在.NET 4出现了。谢谢你,感谢你的分享! - sagescrub

2
我看到了相同的问题。我们使用我的构建框来测试WinForms应用程序在没有4.0的机器上的安装。我们在清单中捆绑了4.0,应用程序可以工作,Framework 4 Client Profile和Framework 4 Extended出现在添加/删除程序中,但是在VS2010选项中仍然没有4.0 Framework。
顺便说一下,重新加载SP1没有帮助。
我最终通过以修复模式运行VS2010设置来使其工作。我现在在VS2010中看到Framework 4.0选项。
那是一个漫长而繁琐的过程,现在我必须再次打补丁到SP1。微软应该尽快修复这个问题。

感谢您的反馈,Kevin。我已经进行了修复,但不幸的是它仍然没有显示 .net 4.0。 - sagescrub
你需要卸载 .net 4.0 然后重新安装它。不幸的是,修复它行不通。然后对 VS 2010 进行修复,再应用 VS 2010 SP1。 - Anonymous Type

2

我曾经遇到过相同的问题。多次卸载和重新安装Visual Studio 2010和.NET 4.X框架都没有解决。

手动卸载"Microsoft Visual Studio Macro Tools"项目,然后进行VS2010的修复安装似乎解决了这个问题。


1
您可以使用以下命令重新安装目标包,这解决了我的问题:
Microsoft .NET Framework 4 多目标包
WCU\MTPack
COMMAND--> NetFx_DTP.msi EXTUI=1 /log "%TEMP%\dd_netfx_dtp.txt"

1

我安装了VS2012,它自动安装了框架4.5。当我创建一个AppDomain时,我遇到了一个奇怪的错误。我通过我的Mercurial repo回到了过去,但仍然出现相同的错误。我决定卸载.Net 4.5并重新安装4,但是VS10会告诉我缺少4。我使用了Win Phone Dev Tools及其多目标包,现在一切都恢复正常了。 - user276648

1

本周我遇到了同样的问题,通过安装Visual Studio 2012 RC解决了该问题。

卸载并重新安装.NET Framework 4没有帮助,我也无法重新安装Visual Studio 2010。在安装了2012 RC之后,Framework 4得以正常运行。


0

对我来说,使用Arash的修复方法有效:“在文件夹C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\RedistList中没有FrameworkList.xml文件。” 我注意到我有其他.NET版本,只需将FrameworkList.xml从其中一个版本复制到4.0 RedistList文件夹即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接