學習使用devenv.exe幫Visual Studio偵錯

擴充程式的好,大家都知道…

自從Visual Studio 2010開始有擴充套件的概念後,我想現在不管是使用Visual Studio 2010或Visual Studio 2012的開發人員們,應該很少人有不使用擴充套件,那種檔案庫上人氣排行前五十名,有百顆星星…很少有不裝的。有空、無聊、發呆…也會去找看看沒有什麼可以好玩的新玩意。但使用的擴充套件一多,難免會有衝突、問題等等。今天碰到一個怪問題,查了一會兒實在理不出個頭緒,心想,不會吧,Visual Studio 2012重灌是個僅次於Windows重灌的大工程。最後用了一個很不好的必殺技來解決,先說,原因我還是沒查出來。

devenv.exe參數及說明

在偵錯Visual Studio開發工具本身時,有二種方式,一種是開兩個VS執行個體,VS1去附加VS2的執行緒,然後用VS2去進行操作,當VS2當掉時,就可以使用VS1收集到相關資訊給開發團隊。

第一種方式,大概你已經”當”到無能為力,上類似connect(產品錯誤回報區)或英文官方討論區,就會有人教你用第一種方式。

但我想自己找問題點,怎麼辦?這時你就必須對Visual Studio的啟動程式(devenv.exe,路徑在C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE)下參數。讓Visual Studio幫你收集資訊,讓我們可以參考這些資訊理來判讀Visual Studio到底發生了什麼問題。

/Build
以指定的方案組態建置方案或專案。例如 "Debug"。如果可能用於多重平台,組態名稱必須以引號括住並包含平台名稱。例如: "Debug|Win32"。
/Clean
刪除組建輸出。
/Command
啟動 IDE 並執行命令。
/Deploy
建置並部署指定的組建組態。
/Edit
在這個應用程式正在執行的執行個體中開啟指定的檔案。如果沒有執行個體正在執行,則會以簡易視窗配置啟動新的執行個體。
/LCID
在 IDE 中設定 UI 的預設語言。
/Log
將 IDE 活動記錄至指定的檔案,以進行疑難排解。
/Out
附加建置記錄至指定的檔案。
/Project
指定要建置、清除或部署的專案。必須搭配Build、/Rebuild、/Clean 或 /Deploy 使用。
/ProjectConfig
覆寫方案組態中指定的專案組態。例如 "Debug"。如果可能用於多重平台,組態名稱必須以引號括住並包含平台名稱。例如:"Debug|Win32"。必須搭配 /Project 使用。
/Rebuild
清除後,再以指定的組態建置方案或專案。
/ResetAddin
移除與指定之增益集相關的命令和命令 UI。
/ResetSettings
還原 IDE 的預設值,選擇性的重設為指定的 VSSettings 檔。
/ResetSkipPkgs
清除所有加入至 VSPackages 的 SkipLoading 標記。
/Run
編譯並執行指定的方案。
/RunExit
編譯並執行指定的方案,然後關閉 IDE。
/SafeMode
在安全模式中啟動 IDE 並載入最少的視窗。
/Upgrade
升級專案,或升級方案以及其中的所有專案。將視需要建立這些檔案的備份。如需備份程序的詳細資訊,請參閱有關 [Visual Studio 轉換精靈] 的說明。
/debugexe
開啟要偵錯的指定可執行檔。此命令列的其餘部分會傳遞到這個可執行檔當做它的引數。
/diff
比較兩個檔案。接受四個參數:SourceFile、TargetFile、SourceDisplayName (選擇性)、TargetDisplayName (選擇性)
/TfsLink
開啟 Team Explorer 並為提供的成品 URI (如果已註冊)啟動檢視器。 /useenv使用 PATH、INCLUDE、LIBPATH 和 LIB 環境變數來代替 VC++ 建置的 IDE 路徑。

若要從命令列附加偵錯工具,請使用下列指令:VsJITDebugger.exe -p

MVC專案無法新增Controller

我在測試的MVC專案要新增一個Controller時,出現以下錯誤:

MVC Project can not add controller

錯誤訊息對於找出問題,一點幫忙也沒有,所我devenv.exe /log的方式來產生記錄檔,記錄檔的位置在「C:\Users\(UserName)\AppData\Roaming\Microsoft\VisualStudio\11.0」下的ActivityLog.xml,記錄檔最上方有三個欄位「infos、warnings、errors」,最主要要注意errors,而且會使用紅色高亮度顯示來提醒。不過,我發生的那個錯誤沒有在記錄檔errors裡留下足跡,倒是有看到幾個擴充套件的warnings。一套一套移除擴充套件找是誰搞的鬼,實在太浪費時間,時間有限。

無法新增Controller事大,重裝擴充套件事小,最後放大絕:devenv.exe /resetuserdata(這是我第二次使用它 XD),將Visual Studio回復至初始狀態。重新開啟專案,新增Controller,搞定+寫文ㄍㄢˋ一下自己,下次玩什麼鬼套件,請各位使用VM裡的測試機先玩,玩掛了也不用像我搞的那麼狼狽不堪。

如果各位前輩、長者、高人…知道那個錯誤訊息是什麼鬼,再麻煩跟小弟我說一下。

沒有留言:

張貼留言

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。