1. 程式人生 > >VS2013無法啟動效能分析工具的一種情況

VS2013無法啟動效能分析工具的一種情況

今天嘗試使用VS2012自帶的效能分析工具,結果發現報錯:“啟動效能分析”會報錯“0x80070002系統找不到指定的檔案”,利用價值不大;“啟動效能嚮導”並完成後報錯“could not load file or assembly 'VSPerfControl.Interop...”,搜尋該報錯資訊可以看到stackoverflow上的一個問題。以下為對該問題回答的實際操作經驗,並不知道原理。
根據回答,該問題應該是由於VS沒有安裝在預設資料夾,我的狀況也的確如此。一種解決辦法是重新安裝VS到預設資料夾。另外一種解決辦法由Lucas Moreira給出,不需要重灌程式。如果瞭解相關基礎知識,第二種解決辦法是很快的;然而我並不瞭解,所以花費了一些時間嘗試。我的狀況為Win7+VS2012。


1、在VS的安裝資料夾\Team Tools\Performance Tools中找是否有VSPerfControl.Interop.dll,如果沒有,則到VS安裝包資料夾\Standalone Profiler中找Profiler_Setup可執行檔案,選擇合適版本安裝。
2、將C:\Program Files (x86)\Microsoft SDKs\Windows下的gacutil.exe和gacutil.exe.config兩檔案拷出來,放到VSPerfControl.Interop.dll所在資料夾。
3、以管理員身份執行系統的cmd.exe,在命令提示行中輸入:cd C:\Program Files\Microsoft Visual Studio 12.0\Team Tools\Performance Tools,回車執行;然後輸入gacutil /i VSPerfControl.Interop.dll,回車執行。沒有報錯資訊,則問題解決。


在第2步中Lucas Moreira建議以管理員身份執行VS的開發人員命令提示工具,但是我不知道如何實現。在開始選單-所有程式-VS-VS Tools中可以找到該工具,但右鍵選單中沒有“以管理員身份執行”選項,我的電腦不知道為何為什麼,runas管理員操作總反饋密碼錯誤;如果選擇“開啟檔案位置”,會發現跳到系統自帶的cmd.exe程式;根據MSDN在VS安裝資料夾\Common7\IDE中找到的是一個bat檔案,右鍵管理員執行並沒有什麼用。在VS-工具中或在開始選單中進入開發人員命令提示工具,都不是管理員身份,之後執行指令會報錯。
因此,我最後是直接用系統本身的cmd,以管理員身份執行。由於系統cmd不像VS的開發人員命令提示工具一樣有內建路徑(環境變數?渣渣表示不懂。),無法識別gacutil指令。參考奮鬥的小壁虎的CSDN部落格“安裝VS2008的Win7:gacutil.exe、sn.exe 所在位置及如何使用gacutil.exe註冊強命名程式集至GAC中”,需要先將C:\Program Files (x86)\Microsoft SDKs\Windows下的gacutil.exe和gacutil.exe.config兩檔案拷出來,放到VSPerfControl.Interop.dll所在資料夾。
在第3步中Microsoft SDKs/Widows內可能有幾組gacutil.exe和gacutil.exe.config,對於錯誤的檔案,操作會報錯“生成此程式集的執行時比當前載入的執行時新”。我最後是使用Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\x64中的檔案。
另外,關於cmd,可能有預設路徑為system32,或其他。輸入指令“cd..”,可以進入上一級資料夾;輸入cd+路徑 可置之為當前路徑。cd指令中路徑含空格無影響,個人感覺比雙引號、縮寫等處理空格的方法更簡單。