您的位置:首页 > 其它

【转发】 解决VS2012 Find and Replace (Ctrl+Shift+F) 不能正常工作的问题

2013-04-12 12:05 537 查看
我的VS2012装好之后Find and Replace (Ctrl+Shift+F)功能就一直不能正常工作,具体表现是:

Find Next功能可用,但Find All的结果不显示每一条matched line.

Find Next and Replace功能可用,但Replace All不能完成替换,在提示“xxx occrurrence(s) replaced.”之后并未真正替换内容。

经过网上一番查找,有两种普遍的解决方法:

VS"Find in Files"失效的解决方法一:让VS窗口获得焦点,顺利按以下快捷键Ctrl+Break,Ctrl+Scroll Lock,Alt+Break

VS"Find in Files"失效的解决方法二:在注册表中删除"HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Find"后重启VS.

但尝试之后都不能解决我的问题。期间还尝试过重置VS所有设置,禁用所有插件,都不起效。

后来在winking等一众大神的帮助下,发现可能是COM组件注册错误引起的问题,根据http://social.msdn.microsoft.com/Forums/en-US/vsx/thread/40c9ad4a-8cee-4f3f-b420-c7cc0463942a/中的办法解决了我的问题。

解决方案引用如下:

Please check if the following registry key is ok. Fixing this solved the issue for me.

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{73B7DC00-F498-4ABD-AB79-D07AFD52F395}]
@="PSFactoryBuffer"

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{73B7DC00-F498-4ABD-AB79-D07AFD52F395}\InProcServer32]
@="C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\MSEnv\\TextMgrP.dll" (我本机上的此项为空)
"ThreadingModel"="Both"

经过大神们的分析,引起这个问题的一个可能原因是:

我在安装了VS2012之后,在没有打开使用过的情况下直接安装了Update1补丁,而Update1补丁本身存在缺陷,引起COM组件引用错误,最终造成这个问题。

感谢帮助我解决问题的大神们!

追加:

还有一个类似的问题,曾经有同事发现某些时候XAML IntelliSense或者Code Editor IntelliSense不起作用,究其原因,也是TextMgrP.dll中的COM组件注册问题,修复办法就是找到对应的COM组件的注册键,更新TextMgrP.dll的路径。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐