添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

在本文中,您將會了解如何使用 Code Map,將程式碼之間的相依性視覺化。

什麼是 Code Map?

在 Visual Studio 中,Code Map 可協助您更快速地查看程式碼如何搭配運用,而無須閱讀所有檔案和程式碼行。 透過這些對應,您可以看到程式碼中的組織和關聯性,包括其結構和相依性、更新方式,以及預估建議變更的成本。

您可以針對這些語言的程式碼對應相依性:

  • 解決方案或組件中的 Visual C# 或 Visual Basic ( .dll .exe )

  • Visual C++ 專案、標頭檔 ( .h #include ) 或二進位檔案中的原生或受控 C 或 C++ 程式碼

  • 由 .NET 模組製作的 Microsoft Dynamics AX X++ 專案和組件

    針對 C# 或 Visual Basic 以外的專案,啟動 Code Map 或是將項目加入現有的 Code Map 之選項較少。 例如,您無法以滑鼠右鍵按一下 C++ 專案中 [文字編輯器] 的物件並將它加入 Code Map。 不過,您可以從 方案總管 類別檢視 物件瀏覽器 拖放個別程式碼元素或檔案。

    若要在 Visual Studio 中建立 Code Map,請先 安裝 Code Map Live Dependency Validation 元件

    若要建立和編輯 Code Map,您需要 Visual Studio Enterprise 版本 。 不過,在 Visual Studio Community 和 Professional 版本中,您可以開啟在 Enterprise 版本中產生的圖表,但是無法編輯。

    在您與使用 Visual Studio Professional 的其他人共用在 Visual Studio Enterprise 中建立的對應時,請確定對應中的所有項目都可見,例如隱藏項目、展開的群組和跨群組連結。

    新增 Code Map

    您可以建立空白的 Code Map,並將項目拖曳到其中,包括組件參考、檔案和資料夾,也可以為部分或整個解決方案產生 Code Map。

    若要新增空白的 Code Map:

  • 在 [方案總管] 中,開啟最上層方案節點的捷徑功能表。 選擇 [新增] > [新增項目]

  • 在 [新增項目] 對話方塊的 [已安裝] 下,選擇 [一般] 類別。

  • 選擇 Directed Graph Document(.dgml) 範本,然後選取 [新增]

    此範本可能不會依字母順序顯示,因此如果您看不到範本,請向下捲動至範本清單的底部。

    有一個空白對應會出現在您解決方案的 [解決方案項目] 資料夾中。

    同樣地,您可以選取 [結構] > [新增 Code Map] 或 [檔案] > [新增] > [檔案] ,建立新的 Code Map 檔案,而不將其新增至您的解決方案。

    深入了解:

  • 共用程式碼對應
  • 建立 C++ 的 Code Map
  • 改善 Code Map 效能
  • 為您的解決方案產生 Code Map

    若要查看解決方案中的所有相依性:

  • 在功能表列上,選擇 [結構] > [產生解決方案的 Code Map] 。 如果您的程式碼自您上次建置之後未曾變更,您可以改為選取 [結構] > [產生解決方案的 Code Map 而不建置]

    對應隨即產生,顯示最上層組件和組件之間的彙總連結。 彙總連結愈廣,代表的相依性就愈高。

  • 使用 Code Map 工具列上的 [圖例] 按鈕以顯示或隱藏專案類型圖示清單 (例如測試、Web 和 Phone 專案),程式碼項目 (例如類別、方法和屬性),和關聯性類型 (例如「繼承自」、「實作」,和「呼叫」)。

    此範例方案包含方案資料夾 ([測試] 和 [元件] )、測試專案、Web 專案和組件。 所有內含項目關聯性預設會顯示為 「群組」 (group),您可將其展開及摺疊。 [外部] 群組中含有在您的方案之外的任何項目,包括平台相依性。 外部組件只會顯示所使用的項目。 根據預設,系統基底類型在對應中會隱藏,以減少雜亂。

  • 若要向下切入到對應,請展開代表專案和組件的群組。 您可以藉由按下 CTRL + A 選取所有節點,然後從捷徑功能表選擇 [群組] 、[展開] ,展開所有項目。

  • 不過,這可能不適用於大型的方案。 事實上,對於複雜的方案而言,記憶體限制可能會導致您無法展開所有群組。 相反地,若要查看個別節點的內部,請展開它。 將滑鼠指標移至節點上方,然後按一下出現的>形箭號 (向下箭號)。

    或使用鍵盤選取項目,然後按下加號鍵 ( + )。 若要瀏覽更深層的程式碼,請為命名空間、類型和成員執行相同的作業。

    如需使用滑鼠、鍵盤和觸控處理 Code Map 的詳細資訊,請參閱 瀏覽和重新排列 Code Map

  • 若要簡化對應,並將焦點放在個別部分,請選擇 Code Map 工具列上的 [篩選] ,然後只選取您感興趣的節點和連結類型。 例如,您可以隱藏所有的方案資料夾和組件容器。

    您也可以隱藏或移除對應上的個別群組和項目來簡化對應,而不會影響基礎的方案程式碼。

  • 若要查看項目之間的關聯性,請在對應中加以選取。 連結的色彩表示關聯性的類型,如 [圖例] 窗格中所示。

    在此範例中,紫色連結是呼叫、虛線的連結是參考,而淺藍色連結則是欄位存取。 綠色的連結可以是繼承,或者可以是 「彙總連結」 (aggregate link),表示多個關聯性類型 (或 「分類」 (category))。

    如果看到綠色連結,可能不表示只有繼承關聯性。 也有可能是方法呼叫,但是繼承關聯性將其隱藏。 若要查看特定類型的連結,請使用 [篩選] 窗格中的核取方塊,隱藏您不感興趣的類型。

  • 若要取得項目或連結的詳細資訊,請將指標移到頂端,直到出現工具提示。 這會顯示程式碼項目或連結代表的類別分類的詳細資料。

  • 若要檢查彙總連結代表的項目和相依性,請先選取連結,然後開啟其捷徑功能表。 選擇 [顯示參與連結] (或 [在新 Code Map 上顯示參與連結] )。 這會展開在連結兩端的群組,並只顯示參與此連結的項目和相依性。

  • 若要將焦點放在對應的特定部分,您可以繼續移除您不感興趣的項目。 例如,若要向下鑽研到類別和成員檢視,只要篩選 [篩選] 窗格中的所有命名空間節點。

  • 專注於複雜方案對應的另一個方法是產生新的對應,其中包含來自現有對應的選取項目。 選取您想要專注的項目時按住 Ctrl ,開啟捷徑功能表,然後選擇 [從選取範圍新增圖形]

  • 包含的內容會轉至新的對應。 使用 [篩選] 窗格隱藏方案資料夾和您不想查看的其他容器。

  • 展開群組,然後選取對應中的項目以檢視關聯性。

    另請參閱:

  • 瀏覽和重新排列 Code Map
  • 藉由編輯 DGML 檔案自訂 Code Map
  • 執行分析器 找出程式碼中的潛在問題
  • 檢視相依性

    假設您有要在出現暫止變更的某些檔案中,執行程式碼檢閱。 若要查看這些變更中的相依性,您可以從那些檔案建立 Code Map。

  • 方案總管 中,選取您要對應的專案、組件參考、資料夾、檔案、類型或成員。

  • [方案總管] 工具列上,選擇 [在 Code Map 上顯示] 從所選節點按鈕建立新的圖形 。 或針對一個或一組項目開啟捷徑功能表,然後選擇 [在 Code Map 上顯示]

    您也可以從 [方案總管] 、[類別檢視] 或 [物件瀏覽器] 將項目拖曳至 新的 或現有的 Code Map。 若要包含項目的父階層,請按住 Ctrl 鍵不放同時拖曳項目,或使用 Code Map 工具列上的 [包含父代] 按鈕,指定預設動作。 您也可以從 Visual Studio 外部拖曳組件檔,例如從 Windows 檔案總管

    當您從跨多個應用程式 (如 Windows Phone 或 Microsoft Store) 共用的專案中加入項目時,這些項目會與目前作用中的應用程式專案出現在對應上。 如果您將內容變更為其他應用程式專案,並且從共用專案加入更多項目,這些項目現在會與新的作用中應用程式專案一起顯示。 您使用對應中項目執行的作業僅適用於共用相同內容的項目。

  • 對應會在其包含的組件內顯示選取的項目。

  • 若要瀏覽項目,請將其展開。 將滑鼠指標移至項目上方,然後按一下出現的>形箭號 (向下箭號) 圖示。

    若要展開所有項目,請使用 Ctrl + A 進行選取,然後開啟對應的捷徑功能表並選擇 [群組] > [展開] 。 不過,如果展開所有群組會產生無法使用的對應或記憶體問題,則無法使用此選項。

  • 繼續展開您感興趣的項目,視需要可一直到類別和成員層級。

    若要查看在程式碼中,但不會出現在對應上的成員,請按一下群組左上角的 [重新擷取子系] 圖示 重新擷取下層圖示

  • 若要查看與對應上之項目相關的其他項目,請選取一個,在 Code Map 工具列上選擇 [顯示相關] ,然後選取要加入對應的相關項目類型。 或者,選取一或多個項目,開啟捷徑功能表,然後針對要加入對應的相關項目類型選擇 [顯示] 選項。 例如:

    對於 組件 ,選擇:

  •