Silverlight不能調試問題(轉摘) Unable to start debugging. Cannot locate Microsoft Internet Explorer.

調試時無法打開IE窗口的問題

原文作者 Kevin Yang

原文鏈接 http://www.imkevinyang.com/2009/09/%E8%A7%A3%E5%86%B3silverlight%E6%97%A0%E6%B3%95%E8%B0%83%E8%AF%95%E7%9A%84%E9%97%AE%E9%A2%98.html

這個問題是我最近才遇到的,我也不知道爲什麼突然之間,我的Silverlight工程按下F5的時候無法調試,彈出下面這個對話框:Unable to start debugging. Cannot locate Microsoft Internet Explorer.

image

如果直接運行,那麼能夠打開,但是打開之後Visual Studio還是會彈出一樣的錯誤。

image

這個問題折騰了我半天,我嘗試了重啓電腦,重裝Silverlight Tools,新建乾淨的測試工程,修改系統和Visual Studio的默認瀏覽器(注意,系統和Visual Studio的默認瀏覽器是獨立設置的)均以失敗告終。Google了很久,Silverlight官方論壇上倒是有不少帖子和這個相關的,但我細細看了之後發現沒有一個回帖能夠解決我的問題的。有個發帖的傢伙問題是解決了,但是不把怎麼解決的說一下就跑了,強烈bs一下這種人!

話說回來,我最後是怎麼解決這個問題的呢,是用了Process Monitor這個小工具(微軟Sysinternal榮譽出品!)。之前有一次asp.net網站的GlobalError裏頭出現了一個“文件不存在”的HTTPException,查了半天沒查出來,後來使用這個工具監視了一下WebDevServ.exe進程之後發現該進程嘗試去訪問某個不存在的文件。

Process Monitor,可以監控當前系統中所有進程的活動,包括對文件系統的操作,讀寫註冊表,網絡訪問以及線程活動等等,非常實用的調試維護工具。

我打開這個工具,選擇監視進程爲devenv.exe。在Visual Studio中F5開始調試,立即彈出出錯對話框,OK,把PM暫停一下,否則條目太多了。

image

但是事件條目還是太多了,所以我把Result爲SUCCESS的條目過濾掉,因爲我們只關注那些失敗的條目。

image

然後對日誌條目進行細緻的排查,終於發現了問題根源:

image

原來Visual Studio在調試或者運行的時候會去讀取註冊表中的HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\iexplore.exe項,然後讀取不到,因而才報那個錯誤。難怪提示Cannot locate Microsoft internet explorer呢。

我打開regedit註冊表編輯器,找到這個路徑,然後把缺失的項加上去,重新回到Visual Studio中F5,終於可以了,內牛滿面~

image

希望我的解決方法能夠給你一些啓發,以後遇到類似莫名其妙的問題,可以想到使用PM這個工具去排查問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章