針對 VSPackage 的問題進行疑難解答
適用於: Visual Studio
本文介紹 VSPackage 的常見問題和疑難解答秘訣。
VSPackage 會防止 Visual Studio 啟動
在此案例中,在命令提示字元中輸入 devenv.exe /safemode ,以安全模式啟動Visual Studio。 在此程式中,除了 Visual Studio 隨附的 VSPackage 以外,不會載入 VSPackage。
未載入 VSPackage
若要針對此問題進行疑難解答,請嘗試下列一或多個步驟:
請確定您使用的是註冊 VSPackage 以執行之登錄根目錄,通常是實驗性登錄根目錄。 如需詳細資訊,請參閱 實驗實例。
如果 VSPackage 的目標是在實驗性登錄根目錄中執行,請確定您正在執行 Visual Studio 的實驗版本。
若要執行實驗版本,請開啟 Visual Studio 命令提示字元,然後輸入 devenv /rootuffix exp。
檢查 VSPackage 登錄專案。 如需詳細資訊,請參閱註冊 VSPackage 和管理 VSPackage。
開啟無法載入 VSPackage 之 Visual Studio 實例的 [輸出] 視窗。 VSPackage 無法載入的原因相關信息可能會顯示在該視窗中。
注意
如果您是從 Visual Studio 集成開發環境啟動 Visual Studio 的實驗版本,請檢查 這兩個版本的 [輸出 ] 視窗。
檢查活動記錄檔。 如需詳細資訊,請參閱如何:使用模組視窗。
如需 IDE 擲回例外狀況的詳細資訊,請選取 [偵錯] 功能表上的 [例外狀況] 以啟用例外狀況。 在 [例外狀況] 對話框中,選取您想要詳細資訊的例外狀況類型。
未註冊 VSPackage
請確定 VSPackage 元件位於信任的位置。 RegPkg 無法在未受信任或部分信任的位置註冊元件,例如預設 .NET 安全性設定中的網路共用。 雖然每當使用者於不受信任的位置建立專案時,就會顯示警告,但 [不要再 顯示此訊息] 複選框可能會防止此警告重新發生。
命令不可見,或在選取命令時產生錯誤
若要解決此問題,請嘗試下列步驟:
在 Visual Studio 命令提示字元中輸入 devenv /rootuffix Exp /setup ,以合併新的或已變更的功能表命令和已在 IDE 中的命令。
請確定 Visual Studio 可以找到 VSPackage 的UI.dll。
在登錄的 [套件] 區段中尋找 VSPackage 的 CLSID:
HKLM\Software\Microsoft\Visual Studio\<version>\Packages
確認 SatelliteDll 子機碼所提供的路徑正確無誤。
VSPackage 的行為意外
若要針對此問題進行疑難解答,請嘗試下列一或多個步驟:
在您的程式碼中設定中斷點。
偵錯的良好起點是建構函式和初始化方法。 您也可以在您想要評估的區域設定斷點,例如功能表命令。 若要啟用斷點,您必須在調試程式下執行。
選取 [專案] 功能表上的 [屬性]。
在 [ 屬性頁] 對話框中,選取 [ 偵錯] 索引標籤。
在 [ 命令行自變數] 方塊中,輸入 VSPackage 目標開發環境的根後綴。 例如,若要選取實驗性組建,請輸入: /RootSuffix Exp。
在 [偵錯] 功能表上,選取 [開始偵錯] 或按 F5。
注意
如果您要偵錯專案,請立即建立或載入您專案的現有實例。
使用活動記錄。
藉由在關鍵點將資訊寫入活動記錄檔,以追蹤 VSPackage 行為。 當您在零售環境中執行 VSPackage 時,這項技術特別有用。 如需詳細資訊,請參閱如何:使用模組視窗。
使用公用符號。
若要改善偵錯時的可讀性,您可以將符號附加至調試程式:
- 從 [ 工具/選項 ] 功能表中,流覽至 [偵錯/符號] 對話方塊。
- 新增 符號檔 (.pdb) 位置:
https://msdl.microsoft.com/download/symbols
。 - 若要改善效能,請指定符號快取資料夾,例如: C:\symbols。
遺漏 VSPackage 或其其中一個相依性
針對 Managed 程式代碼,請確定參考路徑正確。
選取 [專案] 功能表上的 [屬性]。
選取 [屬性頁] 對話框中的 [參考] 索引標籤,並確定所有路徑都正確無誤。 或者,您可以使用 物件瀏覽器 來瀏覽參考的物件。
針對 Managed 程式代碼,您可以使用 Fuslogvw.exe (元件系結記錄查看器) 來顯示失敗元件載入的詳細資料。
針對 Unmanaged 程式代碼,請在 Visual Studio CLSID 登錄節點中尋找 VSPackage 的 CLSID:
HKLM\Software\Microsoft\Visual Studio\<version>\CLSID
請確定 InprocServer32 專案具有 VSPackage DLL 的正確路徑。