Visual Studio 2012 中的普通 C# 编辑器(无智能感知、无缩进、无代码突出显示)
Posted
技术标签:
【中文标题】Visual Studio 2012 中的普通 C# 编辑器(无智能感知、无缩进、无代码突出显示)【英文标题】:Plain C# Editor in Visual Studio 2012 (No intellisense, no indentation, no code highlighting) 【发布时间】:2012-08-12 20:33:21 【问题描述】:我刚刚在我的机器上安装了 Visual Studio 2012,我之前卸载了 Visual Studio 2012 RC。安装成功,但是我打开一个项目后C#编辑器不工作,就像是这样的纯文本编辑器:
我试过修复它,完全卸载它然后重新安装,但没有成功。
有人有想法吗?
我不知道这是否相关,但我在创建新项目或打开现有项目时有时也会收到此错误:
提前致谢
【问题讨论】:
出于好奇,当您开始一个新项目时会发生什么?我不建议将其作为修复,只是想看看问题是否是旧文件的本地问题。 您收到的错误似乎向我表明这是系统权限问题。我建议尝试在虚拟机上安装相同的媒体磁盘,看看是否可行。 您运行的是哪个 Windows 版本? 7 或 8 发布预览版? 我们在全新的(RC 之前未安装)x64 Windows 7 - Visual Studio 2012 Professional 上遇到了同样的问题 同样的问题,基于 Visual basic .net 的项目确实可以工作! 【参考方案1】:我很确定有关 ManagedObjectFactory 的错误与您描述的症状有关。此错误表明您的 Visual Studio 安装(尤其是 C# 语言服务)已损坏。这很可能是由一些设置问题引起的,我们目前正在努力确定。
我有机会调查此错误并发现我们的一个互操作程序集意外安装到 GAC 中,而它不应该安装。它是由 Windows 安装程序安装到 GAC 中的,这表明这是一个设置问题。修复方法是从 GAC 中卸载它,但因为它是由 Windows 安装程序安装的,所以它不仅仅是“gacutil /u”。您需要按照KB873195 中描述的程序将其从 GAC 中删除:
-
从“HKLM\SOFTWARE\Classes\Installer\Assemblies\Global\”中删除与“Microsoft.VisualStudio.CSharp.Services.Language.Interop”程序集对应的值。请注意“互操作”部分,因为还有 Microsoft.VisualStudio.CSharp.Services.Language 程序集,它必须在 GAC 中。
启动“VS2012 x86 Native Tools 命令提示符”并运行“gacutil /u Microsoft.VisualStudio.CSharp.Services.Language.Interop”。
免责声明:我是 Visual Studio C# IDE 团队的开发人员。
【讨论】:
成功了,太棒了!我不必删除注册表项,因为它已经丢失了。 找到并删除了注册表项,但仍然无法从 GAC 卸载。所以这两个版本的 VS Express 在安装 Web 后现在都没有用了... leppie,尝试按照KB873195中的步骤,也许你需要删除HKEY_CURRENT_USER下的密钥? 我试过这个和 KB873195,但它们实际上并没有工作。我重新安装了 VS Express for Web 2012 并且它工作正常。我认为我的问题是我有 VS Express for Web 11,然后我安装了 VS Express for Windows Phone。 同样的症状,修复对我有用!非常感谢奥列格!我对这个问题几乎绝望了,并计划重新安装 Win7...【参考方案2】:可能是某些设置在 Visual Studio 中被禁用。检查以下设置:
Tools->Options->Text Editor->C#->General->Auto list members
Tools->Options->Text Editor->C#->General->Parameter information
编辑:
还要检查
Tools->Options->Text Editor->C#->Intellisense->
Show completion list after a character is typed
这是一个article on ScottGu's blog,可能会有所帮助:D
第二次编辑:
ScottGu 的博客上还有一篇题为No Intellisense with VS 2010 RC (and how to fix it) 的文章。让我知道这是否有帮助。 patch is available here。
第三次编辑:
Tools –> Import and Export Settings -> Reset all Settings
您可以根据需要备份旧设置。这个solution 是针对visual studio 2012 的。我相信这应该可以工作
第四次编辑: 不要只为 C# 更改它,而是为所有语言更改它
Tools > Options > Text Editor > All Languages
通常,请确保“语句完成”部分中的复选框已被主动选中(未灰显)。有可能有一个蓝色方块而不是一个刻度线。由于勾选框为 3 状态,正方形表示“部分选择”已生效。勾选标记生效后,重新启动 Visual Studio 并重试。
最终编辑:
看起来安装缺少一些文件。我建议您下载该软件的新副本并从头开始安装,并启用默认设置。
【讨论】:
@Escobar5 更新了答案,其中包含指向可用补丁的链接。让我知道这是否有效 适用于 Visual Studio 2010,而不是 2012 :( @Escobar5 更新了 Visual Studio 2012 的答案...您可以尝试一下并告诉我是否可行。如果这不起作用,我们可以进一步排除故障 @Escobar5 再试最后一部分...如果没有,我会进行更多研究并稍后更新我的答案 感谢您的宝贵时间,我刚刚检查了所有语言的设置,它们已被激活。另请查看我的编辑,我不知道它是否相关【参考方案3】:我刚遇到和你一样的问题,按照我找到的here 的说明进行操作。
我发现有效的部分是:
-
尝试在命令提示符中运行 devenv /Resetsettings 以消除设置损坏的原因。
尝试在命令提示符中运行 devenv /ResetSkipPkgs。
尝试在命令提示符下运行 devenv /Safemode 看看是否可以正确应用。
尝试在命令提示符中运行 devenv /Resetuserdata 以重置所有 VS 环境和自定义设置。
【讨论】:
devenv /Resetuserdata 已经帮我完成了,我现在收到一个错误,说 EditorExtensionsPackage 包没有完全加载,但它仍然有效,我现在缺少颜色。【参考方案4】:尝试删除:
%appdata%\Roaming\Microsoft\Microsoft Visual Studio %appdata%\Roaming\Microsoft\VisualStudio %appdata%\Local\Microsoft\VisualStudio这应该会删除您的所有 Visual Studio 设置(来自所有版本)并将其恢复为默认设置,以防 RC 留下了一些 RTM 不喜欢的旧设置。
编辑:
你也想删除
我的文档/Visual Studio 2012/设置【讨论】:
我上次安装之前是这样做的,我现在又做了一遍,没有效果【参考方案5】:如果你将 vs2012 安装在另一个磁盘(比如磁盘 D:)而不是 RC(安装在磁盘 E:)上,请尝试将 E:\Program Files\Micosoft Visual Studio 11
复制到 D: 上的相应文件夹。
【讨论】:
【参考方案6】:如果您有任何 RC 版本,则可能是原因。
我在使用 Visual Studio 2012 开发人员版时遇到了这个问题。后来我发现我有Express Edition RC,我把它删除了,它解决了问题。
然后我应用了eggie的解决方案
【讨论】:
【参考方案7】:好吧,我仍然不知道是什么问题,但通过卸载visual studio 2012 final,然后安装visual studio 2012 RC,然后在没有卸载RC 的情况下再次安装最终版本来解决它。
感谢大家的帮助。
【讨论】:
我按照Oleg Tkachenko 描述的步骤进行操作,就我而言,我不必删除它不存在的密钥。我刚刚运行 gacutil /u ... 命令,重新启动了 Visual Studio 2012(没有卸载它),它就像一个魅力!【参考方案8】:Oleg 的解决方案(或 cmets 中建议的变体)或修复 Visual Studio 都不适合我。我终于偶然发现了here 显示的修复程序
所以 3 个简单的步骤:
1) 关闭 Visual Studio 的所有实例
2) 以管理员身份运行Developer Command Prompt for VS2012
(在开始菜单中搜索)
3) 然后输入devenv.exe /setup
这对我有用。
【讨论】:
以上是关于Visual Studio 2012 中的普通 C# 编辑器(无智能感知、无缩进、无代码突出显示)的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 2012 和 c++11 中的不同输出
在 Visual Studio 2012 中使用 Web 参考
Windows 窗体应用程序:访问其他窗体中的元素 Visual Studio 2012 C++