共用方式為


概觀

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

開始使用

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

安裝擴充功能

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

注意

VisualStudio.Extensibility Diagnostics Explorer 擴充功能與 Visual Studio 2022 17.12 和更新版本相容。

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

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

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

啟用診斷的收集

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

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

診斷頁面

[診斷總管] 工具視窗的左側面板包含不同的 診斷頁面清單。 診斷頁面有兩種類型 - 可延伸的功能和擴充性基礎結構。 可延伸功能頁面提供Visual Studio內特定可延伸元件的診斷資訊,例如命令。 擴充性基礎結構頁面提供相關的診斷資訊,不論延伸模組插入的擴充性為何。 [事件] 頁面、擴充性相關事件的即時查看器,以及顯示相關 IDE 狀態以協助您製作啟用條件約束的相關 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 本身相關的各種屬性狀態。 Context ComboBox 會將檢視中的數據變更為顯示與用戶端內容 ComboBox 中目前選取專案相關的所有啟用條件約束,或開啟工具視窗後這些屬性變更的所有時間記錄。 選取 [事件] 內容時,[全部清除] 按鈕可用來刪除檢視中目前顯示的所有事件。

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

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