這很重要
從 Visual Studio 2022 版本 17.9 開始,現在可以使用新的 VisualStudio.Extensibility 模型撰寫外部進程運行的 .NET 6.0+ 可視化檢視器。 如需使用新模型建立的延伸模組,請參閱在建立 Visual Studio 偵錯工具可視化器中的文件。 如果您需要支援舊版 Visual Studio,或想要將自訂視覺化工具作為程式庫 DLL 的一部分進行發佈,請參考本文中的資訊,本資訊僅適用於舊版的擴充開發模型(VSSDK)。
本逐步解說示範如何使用 Visual Basic 撰寫簡單的可視化檢視。 您將在本逐步解說中建立的可視化檢視會使用 Windows Forms 消息框來顯示字串的內容。 這個簡單的字串可視化檢視是一個基本範例,示範如何為更適用於您專案的其他數據類型建立可視化檢視。
備註
您看到的對話框和功能表命令可能與 [說明] 中描述的有所不同,這取決於您的設定或版本。 若要變更您的設定,請移至 [ 工具] 功能表,然後選擇 [ 匯入和匯出 ]。 如需詳細資訊,請參閱 重設設定。
可視化檢視程式代碼必須放在調試程式將讀取的 DLL 中。 第一個步驟是建立 DLL 的類別庫專案。
建立和準備類別庫專案
若要建立類別庫專案
建立新的類別庫專案。
按 Esc 關閉開始視窗。 輸入 Ctrl + Q 以開啟搜尋方塊、輸入 類別庫,然後選取 Visual Basic 類別庫 (.NET Framework) 。
按 Esc 關閉開始視窗。 輸入 Ctrl + Q 以開啟搜尋方塊,輸入 visual basic,選擇 [範本],然後選擇 [建立新的類別庫][.NET Framework]。
輸入類別庫的適當名稱,例如
MyFirstVisualizer,然後按兩下 [ 建立 ] 或 [ 確定]。當您建立類別庫時,必須將參考新增至 Microsoft.VisualStudio.DebuggerVisualizers.DLL,以便您可以使用該處定義的類別。 不過,首先,您會為專案提供有意義的名稱。
重新命名Class1.vb並新增 Microsoft.VisualStudio.DebuggerVisualizers
在 [方案總管] 中,以滑鼠右鍵點擊 [Class1.vb],然後在快捷方式功能表上按一下 [重新命名]。
將名稱從Class1.vb變更為有意義的專案,例如DebuggerSide.vb。
備註
Visual Studio 會自動變更 DebuggerSide.vb 中的類別宣告,以符合新的檔名。
在 [方案總管] 中,以滑鼠右鍵點擊 [我的第一個視覺化工具],然後在快捷方式功能表上,單擊 [新增參考]。
在 [ 新增參考] 對話方塊的 [ 瀏覽 ] 索引標籤上,選取 [ 瀏覽 ] 並尋找 Microsoft.VisualStudio.DebuggerVisualizers.DLL。
您可以在 Visual Studio 安裝目錄<\Common7\IDE\PublicAssemblies 子目錄中找到 DLL>。
按一下 [確定]。
在 DebuggerSide.vb 中,將下列語句新增至
Imports語句:Imports Microsoft.VisualStudio.DebuggerVisualizers
新增調試程式端程序代碼
現在,您已準備好建立調試程式端程序代碼。 這是在調試程式內執行的程式代碼,以顯示您想要可視化的資訊。 首先,您必須變更物件的宣告 DebuggerSide ,使其繼承自基類 DialogDebuggerVisualizer。
從 DialogDebuggerVisualizer 繼承
在DebuggerSide.vb中,移至下列程式代碼行:
Public Class DebuggerSide編輯程式代碼,使其看起來像這樣:
Public Class DebuggerSide Inherits DialogDebuggerVisualizer備註
DialogDebuggerVisualizer 預期其建構函式中有自
FormatterPolicy變數。 不過,由於 .NET 5.0+ 的特殊調試程式端考慮中所述的安全性問題,從Visual Studio 2022 17.11版開始,可視化檢視將無法指定Legacy格式器原則。DialogDebuggerVisualizer有一個抽象方法,Show,您必須覆寫。
覆寫 DialogDebuggerVisualizer.Show 方法的方法
在
public class DebuggerSide中新增下列方法:Protected Overrides Sub Show(ByVal windowService As Microsoft.VisualStudio.DebuggerVisualizers.IDialogVisualizerService, ByVal objectProvider As Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider) End SubShow方法包含實際建立可視化檢視對話方塊或其他使用者介面的程式代碼,並顯示已從調試程式傳遞至可視化檢視的資訊。 您必須新增建立對話框的程序代碼,並顯示資訊。 在本逐步解說中,您將使用 Windows Forms 消息框來執行此動作。 首先,您必須新增Imports參考和 System.Windows.Forms 語句。
請新增 System.Windows.Forms
在 [方案總管] 中,以滑鼠右鍵按兩下 [ 參考],然後在快捷方式功能表上,按兩下 [ 新增參考]。
在 [ 新增參考] 對話框的 [ 流覽 ] 索引標籤上,選取 [ 流覽],然後尋找System.Windows.Forms.DLL。
您可以在 C:\Windows\Microsoft.NET\Framework\v4.0.30319 中找到 DLL。
按一下 [確定]。
在 DebuggerSide.cs 中,將下列語句新增至
Imports語句:Imports System.Windows.Forms
建立可視化檢視的使用者介面
現在,您將新增一些程式碼來建立並顯示可視化檢視的使用者介面。 因為這是您的第一個可視化檢視,因此您會保持使用者介面簡單,並使用消息框。
在對話框中顯示可視化檢視輸出
在
Show方法中,新增下列程式碼行:MessageBox.Show(objectProvider.GetObject().ToString())此範例程式代碼不包含錯誤處理。 您應該在真實可視化檢視或任何其他類型的應用程式中包含錯誤處理。
在 [建置] 功能表中,按一下 [建置 MyFirstVisualizer]。 項目應該會順利建置。 在繼續之前,請先更正任何建置錯誤。
新增必要的屬性
這是調試程式端程式代碼的結尾。 不過,還有一個步驟:可告訴被調試端哪些類別集合包含可視化工具的屬性。
若要新增類型以可視化方式呈現偵錯專案端程序代碼
在 debugger 端的程式碼中,您會使用 DebuggerVisualizerAttribute 屬性指定要可視化的型別(物件來源)以供偵錯應用程式使用。 這個屬性會設定要視覺化的Target 類型。
請將以下屬性程式碼新增到 DebuggerSide.vb 中,於
Imports語句之後但在namespace MyFirstVisualizer之前:<Assembly: System.Diagnostics.DebuggerVisualizer(GetType(MyFirstVisualizer.DebuggerSide), GetType(VisualizerObjectSource), Target:=GetType(System.String), Description:="My First Visualizer")>在 [建置] 功能表中,按一下 [建置 MyFirstVisualizer]。 項目應該會順利建置。 在繼續之前,請先更正任何建置錯誤。
建立測試框架
此時,您的第一個可視化檢視已完成。 如果您已正確遵循這些步驟,您可以建置可視化檢視並將其安裝至 Visual Studio。 不過,在將可視化檢視安裝到 Visual Studio 之前,您應該先測試它,以確定它能夠正確執行。 您現在會建立測試線束,以執行可視化檢視,而不需要將它安裝到 Visual Studio 中。
若要新增測試方法以顯示可視化檢視
將下列方法新增至 類別
public DebuggerSide:Shared Public Sub TestShowVisualizer(ByVal objectToVisualize As Object) Dim visualizerHost As New VisualizerDevelopmentHost(objectToVisualize, GetType(DebuggerSide)) visualizerHost.ShowVisualizer() End Sub在 [建置] 功能表中,按一下 [建置 MyFirstVisualizer]。 項目應該會順利建置。 在繼續之前,請先更正任何建置錯誤。
接下來,您必須建立可執行的專案來呼叫可視化檢視 DLL。 為了簡單起見,請使用主控台應用程式專案。
將主控台應用程式專案新增至方案
在方案總管中,以滑鼠右鍵按兩下方案,選擇 [ 新增],然後按兩下 [ 新增專案]。
在 [搜尋] 方塊中,輸入visual basic,選擇 [範本],然後選擇 [建立新的控制台應用程式][.NET Framework]。 在出現的對話框中,選擇 建立。
輸入類別庫的適當名稱,例如
MyTestConsole,然後按兩下 [ 建立 ] 或 [ 確定]。現在,您必須新增必要的參考,讓 MyTestConsole 可以呼叫 MyFirstVisualizer。
若要將必要的參考新增至 MyTestConsole
在 [方案總管] 中,按一下滑鼠右鍵 [MyTestConsole],然後在快捷功能表上,按一下 [新增參考]。
在 [ 新增參考] 對話框的 [ 流覽 ] 索引標籤上,按兩下 [Microsoft.VisualStudio.DebuggerVisualizers]。
按一下 [確定]。
以滑鼠右鍵點擊 MyTestConsole,然後再次點擊 Add Reference。
在 [ 新增參考] 對話框中,按兩下 [ 專案 ] 索引卷標,然後選取 [MyFirstVisualizer]。
按一下 [確定]。
完成測試框架並測試視覺化工具
現在,您將新增程式代碼以完成測試環境。
將程式代碼新增至 MyTestConsole
在 方案總管 中,以滑鼠右鍵按一下 Program.vb,然後在捷徑選單中按一下 重新命名。
將名稱從Module1.vb編輯為適當的名稱,例如 TestConsole.vb。
請注意,Visual Studio 會自動變更 TestConsole.vb 中的類別宣告,以符合新的檔名。
在 TestConsole 中。 vb,新增下列
Imports語句:Imports MyFirstVisualizer在方法
Main中,新增下列程序代碼:Dim myString As String = "Hello, World" DebuggerSide.TestShowVisualizer(myString)現在您已準備好測試第一個視覺化工具。
測試視覺化器
在 [方案總管] 中,以滑鼠右鍵按兩下 [MyTestConsole],然後在快捷方式功能表上,按兩下 [ 設定為啟始專案]。
在[偵錯]功能表上,按一下[開始]。
主控台應用程式隨即啟動。 可視化檢視隨即出現,並顯示字串 「Hello, World」。。
祝賀。 您剛剛建置並測試了第一個可視化檢視。
如果您想在 Visual Studio 中使用您的視覺化工具,而不只是透過測試框架呼叫它,則必須進行安裝。 如需詳細資訊,請參閱 如何:安裝可視化檢視。