共用方式為


概觀

VisualStudio.Extensibility 診斷總管擴充功能旨在協助在開發 VisualStudio.Extensibility 擴充功能時進行偵錯。 此擴充功能的目標對象是擴充功能作者,而不是擴充功能取用者。 此擴充功能提供介面,用來檢查擴充功能所互動的擴充點,以及擴充功能會向整合式開發環境 (IDE) 提供哪些設定物件,及這些設定物件的中繼資料。

開始使用

請遵循這些指示,來安裝、啟動及設定診斷總管。

安裝擴充功能

您可以直接透過 Visual Studio 中的擴充功能管理員,或從這裡的 Visual Studio Marketplace 取得診斷總管。

注意

VisualStudio.Extensibility 診斷總管擴充功能與 Visual Studio 2022 17.10 和更新版本相容。

在 Visual Studio 中,開啟 [診斷總管]

若要在 Visual Studio 中啟動診斷總管,請在 [擴充功能] 功能表中選取 [VisualStudio.Extensibility 診斷總管]

開啟擴充功能工具視窗的命令的螢幕擷取畫面。

啟用診斷的收集

預設情況下,診斷總管會設定為從擴充功能收集相關的診斷資料。 如果您想要停用或重新啟用此資料收集,您可以在工具視窗左下角切換 [啟用收集診斷] 核取方塊。 需要重新啟動 Visual Studio,對此設定所做的任何變更才會生效。

[啟用收集診斷] 設定的螢幕擷取畫面。

診斷頁面

[診斷總管] 工具視窗的左側面板包含不同功能頁面的清單。 這些頁面對應至可擴充的功能,您可以在其中找到有關 Visual Studio 從擴充功能探索到的元件和組態的診斷資訊。 例如,您可以選取 [命令] 來檢視與命令、命令集、功能表與工具列、位置等相關的診斷。

此外,清單中還有兩個與擴充功能中任何元件不直接相關的特殊頁面:事件、擴充性相關事件的即時檢視器,以及啟用條件約束,其會顯示相關的整合式開發環境 (IDE) 狀態,以協助您製作啟用條件約束。

工具視窗左側面板的螢幕擷取畫面。

可延伸功能頁面

可延伸功能頁面的左上方有 ComboBox,適用於該功能區域中的不同擴充點,其中每個擴充點都可以直接對應至擴充功能中的設定物件。 例如,在 [命令] 頁面中,有一個 [功能表與工具列] 的 [擴充點],其中會顯示 Visual Studio 在 VisualStudio.Extensibility 擴充功能中探索到的每個功能表和工具列。

隨著擴充功能中的屬性更新,資料亦會即時更新。 例如,如果擴充功能在執行階段變更其中一個命令的顯示名稱,則該命令的新顯示名稱會立即顯示在該命令的 [顯示名稱] 資料行的資料格中。

命令頁面的螢幕擷取畫面。

擴充點 ComboBox 也有名為 Log 的項目,其會顯示這些更新的即時檢視。 ComboBox 旁的 [全部清除] 按鈕可用來清除檢視中目前顯示的所有行。

命令的記錄頁面的螢幕擷取畫面。

您可以使用擴充功能 ComboBox 來篩選檢視中的項目。 在此 ComboBox 中選取 [全部] 時,會顯示每個已安裝的 VisualStudio.Extensibility 擴充功能的資料。 如果您將此 ComboBox 變更為特定擴充功能的 ID,則僅會顯示與該特定擴充功能相關的項目。 即使您在可擴充功能頁面之間瀏覽,此 ComboBox 的值仍會予以保存。

篩選為特定擴充功能的命令頁面的螢幕擷取畫面。

DataGrid 中的某些資料格會顯示 [按下以展開]。 此訊息表示與該屬性相關的中繼資料太過詳細,而無法整齊地顯示在 DataGrid 的資料格中。 按下資料格即會開啟強制回應對話方塊,以顯示該資料格的實際值。

[按下以展開] 強制回應對話方塊的螢幕擷取畫面。

事件頁面

[事件] 頁面會顯示在整合式開發環境 (IDE) 中「發生問題」的時間。 每個事件在 DataGrid 中顯示未新的資料列,以及與該事件相關的任何屬性。 例如,當執行命令時,[命令 - 執行] 事件會出現在檢視中,其中顯示命令所屬的擴充功能 ID 以及執行的命令的 ID。

您可以使用事件 ComboBox 來篩選檢視,以僅包含具有特定名稱的事件。 選取 [全部] 時,即會顯示所有事件。 若選取特定事件,則會在檢視中顯示事件的所有屬性。 如果某些屬性太過詳細而無法顯示在單一資料格中,則需要按一下 [按下以展開] 來展開。

合約 ComboBox 會篩選檢視,以僅顯示與特定可擴充功能相關的事件。 其還會篩選 Event ComboBox,以僅包含與特定可擴充功能相關的事件名稱。

按下 [全部清除] 按鈕會刪除檢視中目前顯示的所有事件。

事件頁面的螢幕擷取畫面。

資料行描述

擴充識別碼

[擴充功能 ID] 資料行會顯示與事件執行個體相關的擴充功能 ID。 如果某些事件不屬於特定擴充功能而是套用到整個整合式開發環境 (IDE),則此資料格可能會是空的。

項目識別碼

[項目 ID] 資料行會顯示與事件執行個體相關的擴充功能項目 ID。 例如,[命令 - 執行] 事件的 [項目 ID] 是執行的命令的 ID。

屬性

[屬性] 資料行會顯示與該事件執行個體相關的屬性集,而該執行個體可以顯示在 DataGrid 的單一資料格中。 只有從 [更多資訊] 對話方塊,或透過將 [事件] ComboBox 變更為您感興趣的特定事件名稱,才能看到更多詳細資訊屬性。

其他資訊

[更多資訊] 資料行會顯示與事件相關的更多詳細資訊中繼資料。 按下此資料行中的資料格會開啟強制回應對話方塊,其中包含與該資料列所表示事件相關的所有中繼資料。

更多資訊對話方塊的螢幕擷取畫面。

啟用條件約束頁面

啟用條件約束頁面會顯示與整合式開發環境 (IDE) 本身相關的各種屬性狀態。 內容 ComboBox 會將檢視中的資料變更為顯示與啟用條件約束 ComboBox 中目前選取之項目相關的所有啟用條件約束,或自工具視窗開啟以來這些屬性變更的所有時間記錄。 選取 [事件] 內容時,[全部清除] 按鈕可用來刪除檢視中目前顯示的所有事件。

啟用條件約束的目前狀態頁面的螢幕擷取畫面。

啟用條件約束的事件頁面的螢幕擷取畫面。