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

我的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的路径。

posted @ 2013-04-12 12:05  Alen在西安  阅读(3494)  评论(2编辑  收藏  举报