【轉發】 解決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的路徑。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM