共用方式為


根據相依性圖形顯現程式碼相依性

若要查看和了解您的程式碼和它的相依性的組織中,您可以在 Visual Studio Ultimate 相依性圖形。 什麼是如何相依性圖形和是它們有用?

支援的專案:

  • Visual C# .NET 和 Visual Basic .NET 專案,包括 Windows 存放區應用程式和組件檔 (.dll 或 .exe)。

  • Visual C++ 專案,包括 Windows 存放區應用程式, C 或 C++ 程式碼 (Managed 或原生),標頭檔 (.h) 或 #include和二進位檔案。

視訊:

本主題內容

  • 我要如何開始?

  • 視覺化的相依性與您的程式碼

  • 共用相依性圖形

  • 產生批次處理的圖形

  • 疑難排解

我要如何開始?

  • 取得方案的概觀:在 [架構] 功能表上,選擇 [產生相依性圖形], [針對方案]。

    取得顯示最上層組件的圖形。 您可以展開它們出現在探索這些組件。 將滑鼠指標置於組件的頂端,然後選取>形箭號 (^) 按鈕,在顯示時。 設定成相同命名空間、型別和成員可以繼續探索您的程式碼。

    組件的最上層相依性圖形

    若要查看跨群組相依性,請選擇在圖形中的某個項目。

    包含所選項目和已展開群組的圖形

    如需詳細資訊,請參閱 取得方案的概觀。 您也可以執行分析器尋找可能在程式碼中的問題。 請參閱 從相依性圖形尋找程式碼中潛在的問題

  • 以視覺化方式檢視您方案中的特定相依性:在 [方案總管],選取您感興趣的項目。 您可以選擇專案、組件參考、資料夾、檔案、型別和其成員。 若要尋找特定項目,請使用 [方案總管] 搜尋方塊。

    在 [方案總管] 工具列上,選取 [建立新的圖形文件 [從所有選取的節點建立新的圖形文件] 按鈕

    -或-

    從 [方案總管] 拖曳項目加入至現有圖形。

    提示

    若要建立空白圖形, [檔案] 在功能表上,選取 [新增], [檔案], [有向圖形文件]。將項目的父代階層架構,請按住 [CTRL] 索引鍵,當您拖曳項目時。

    取得顯示您所選取之項目的圖表。 您可以展開它們出現在探索這些項目。 移動滑鼠指標位於此項目上方,然後選取>形箭號 (^) 按鈕,在顯示時。

    如需詳細資訊,請參閱 以視覺化方式檢視您方案中的特定相依性。 您也可以執行分析器尋找可能在程式碼中的問題。 請參閱 從相依性圖形尋找程式碼中潛在的問題

什麼是如何相依性圖形和是它們有用?

相依性圖形提供視覺化方式檢查程式碼並了解其相依性,而不須將檔案和程式碼。 您可以看到項目及關聯性的做為節點和連結或箭號。 例如,假設您有一個執行的程式碼檢閱。 您有包含暫止變更的一組檔案。 您可以建立相依性圖形將程式碼和相依性這些變更的從這些檔案。 請參閱 以視覺化方式檢視您方案中的特定相依性。

根據預設,容器關聯性表示為群組,您可以展開和摺疊。

包含已分組之節點的相依性圖形

提示

[重新擷取子系] 按鈕 重新擷取子系圖示 可讓您擷取存在於程式碼群組的成員,而不會出現在圖形上。我們也套用不同的樣式套用至呼叫連結,讓您可以更容易地看到它。請參閱 編輯和自訂相依性圖形

您也可以檢視容器關聯性為連結。 隨即開啟圖形的捷徑功能表上,選取 [群組], [關閉群組]:

包含已分組之節點和連結的相依性圖形

您也可以執行分析器尋找可能在程式碼中的問題。 請參閱 從相依性圖形尋找程式碼中潛在的問題

當您第一次產生相依性圖形,找到的 Visual Studio 的所有相依性。 這個程序可能需要一些時間,特別是的大型方案或圖形與多個連結。 但是,索引改善更新作業的效能。 如果程式碼變更, Visual Studio 重新建立索引只更新程式碼。

如果您不想等圖形完成產生動作,您可以隨時取消此步驟並嘗試下列建議:

  • 圖形您感興趣的相依性。

  • 在您產生整個方案的目前圖形,請減少方案的範圍。

雖然 Visual Studio 可以與 1 GB 的記憶體,建議您的電腦具有以避免至少 2 GB 的記憶體的冗長延遲,則 Visual Studio 會建立程式碼索引並產生圖形時。

注意事項注意事項

Visual Studio 會產生圖形,如果至少有一個專案建置成功。已成功顯示該程式碼的相依性組建。如果發生建置錯誤的某些元件發生,那些元件的錯誤會出現在圖形上。在根據圖形進行架構決策前,請確定元件實際建置且具有相依性。

當專案項目, 複製到輸出目錄 的屬性設定為 永遠複製時,可能需要更長的時間來建立圖表或將項目加入至圖表從 [方案總管] 中。這可能會導致以累加建置和 Visual Studio 的問題每次重新建置專案。若要增加效能,請將這個屬性變更為 有更新時才複製 或 PreserveNewest。請參閱 累加建置

視覺化的相依性與您的程式碼

  • 取得您的程式碼概觀

  • 以視覺化方式檢視特定相依性在您的程式碼

  • 以視覺化方式檢視 C 或 C++ 之間的相依性原始程式檔和標頭檔

  • 產生處理使用 GraphCmd.exe 的批次的圖形

提示

若要產生 C++ 專案的完整圖表,這些專案必須設定瀏覽資訊編譯器選項 (/FR)。否則,訊息隨即出現您設定選項。如果出現這個訊息,您可以選取 [確定] 只設定目前圖形的選項,或者您可以將此選項和隱藏所有最新圖形的訊息。認可訊息以供稍後圖表隨即出現,設定下列登錄機碼加入至 0 或刪除金鑰:

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\NativeProvider : AutoEnableSbr

請參閱 /FR、/Fr (建立 .Sbr 檔案)

取得您的程式碼概觀

您可以建立自己的整個方案或 對於組件或二進位檔。的相依性圖形。

Dd409453.collapse_all(zh-tw,VS.110).gif取得方案的概觀

  1. 在 [架構] 功能表上,選擇 [產生相依性圖形], [針對方案]。

    取得顯示最上層組件和彙總連結它們之間的圖形。 彙總連結的粗細指出有多少個別相依性連結所表示。 [外部] 群組包含任何項目在您的方案之外,包括平台相依性。 外部組件顯示使用上的項目。

    組件的最上層相依性圖形

  2. 您可以展開它們出現在探索這些組件。 將滑鼠指標置於組件的頂端,然後選取>形箭號 (^) 按鈕,在顯示時。 (鍵盤:選取項目,然後選取 [無效] 鍵 (+))。設定成相同命名空間、類別和成員的可以繼續探索您的程式碼。

  3. 若要取得項目或連結的詳細資訊,請將指標移到項目頂端,直到出現工具提示。

  4. 若要檢查彙總連結和相依性表示的項目,請先選取連結,然後開啟捷徑功能表。 選取 [顯示]、 [目前圖表中的參與連結] 或 [新增圖表中的參與連結]。

    Visual Studio 展開群組在連結的兩端並顯示參與此連結上的項目和相依性。 若要查看存在於程式碼群組,但是因為遺漏的項目,請選取 [重新擷取子系 重新擷取子系圖示

請參閱:

Dd409453.collapse_all(zh-tw,VS.110).gif取得組件或二進位概觀

  • 建立空白圖形或開啟現有圖形的 .dgml 檔案)。 從 Visual Studio 外部,將組件或二進位至圖形。

    注意事項注意事項

    為,當您執行 Windows 檔案總管和 Visual Studio 以相同的使用者存取控制項 (UAC) 使用權限等級,您可以將組件或二進位檔從 Windows 檔案總管。例如,如果 UAC 已開啟,而您是 Visual Studio 以系統管理員身分執行,那麼 [Windows 檔案總管] 將會封鎖拖曳作業。若要解決這個問題,請確定 Visual Studio 以系統管理員身分執行,或關閉 UAC。請注意在 Windows 8 中, Windows 檔案總管是檔案總管。

    -或-

    1. 在 [架構] 功能表上,選擇 [Windows], [架構總管]。

    2. 在第一個資料行, [檔案系統] 在下,選取 [選取檔案]。

    3. 在 [開啟] 方塊中,尋找並選取組件或二進位檔。 選取 [開啟] 將它們加入至 [架構總管] 的下一個資料行。

    4. 在 [架構總管],選取組件或二進位檔。

    5. 在包含選取的組件或二進位之資料行的右側,選取摺疊的動作資料行加以展開。

      提示

      當您將指標移至其上方時,摺疊的動作資料行就會反白顯示。

    6. 在動作資料行中, [命令] 底下,選取 [開啟] 產生相依性圖形。

      請參閱 使用架構總管尋找程式碼

Dd409453.collapse_all(zh-tw,VS.110).gif建立空白圖形

  1. 若要開啟新的空白圖形不會加入至您的方案,請在功能表上,選取 [檔案][新增], [檔案]。

    -或-

    若要將空白圖形加入至方案中的 [方案項目] 資料夾中,開啟最上層的方案節點的捷徑功能表。 選取 [新增], [新增項目]。

  2. 在 [已安裝的] 底下,選取 [一般]。

  3. 在右窗格中,選取 [ [有向圖形文件]。

    您也可以將空白圖形加入至模型專案 [架構] 從功能表中選擇 [新增圖表]。

以視覺化方式檢視特定程式碼相依性。

您可以針對特定項目建立相依性圖形中的方案或 在組件和二進位。

以視覺化方式檢視您方案中的特定相依性

顯示特定程式碼的方式

顯示特定程式碼及父代的方式

Dd409453.collapse_all(zh-tw,VS.110).gif

  1. 在 [方案總管],選取您感興趣的項目。 您可以選擇專案、組件參考、資料夾、檔案、型別和其成員。 若要尋找特定項目,請使用 [方案總管] 搜尋方塊。

    提示

    若要尋找項目與型別或成員的相依性,請開啟型別的 [方案總管] 的捷徑功能表或成員。選取相依性類型。方案總管會顯示具有相依性您指定的項目。選取結果。

  2. 若要繪製的專案及其成員, [方案總管] 工具列上,選取 [建立新的圖形文件 [從所有選取的節點建立新的圖形文件] 按鈕

    -或-

    要包含在圖形上的父代階層架構,在 [方案總管] 工具列的 [建立新的圖形文件…] 清單,然後選取 [新增含有上階的相依性圖形]。

    提示

    您也可以將項目拖曳至圖形。首先, 建立空白圖形 或開啟現有圖形的 .dgml 檔案)。包含父容器階層,請按住 [CTRL] 索引鍵,當您拖曳項目時。

    取得顯示您所選取之項目的圖表。

  3. 若要探索項目,您可以展開它們。 移動滑鼠指標位於此項目上方,然後選取>形箭號 (^) 按鈕,在顯示時。 若要展開所有項目,請開啟圖形的捷徑功能表。 選取 [群組], [全部展開]。

    注意事項注意事項

    如果展開所有群組產生一個無法使用的圖表或記憶體問題,這個命令無法使用。

  4. 從群組要擷取遺漏的項目,請選取群組中的 [重新擷取子系 重新擷取子系圖示

  5. 若要查看更多項目與這個相關的圖形,請開啟項目的捷徑功能表。 選取 [顯示] 和您要檢查的項目之間的關聯性。

    對組件而言,選取:

    參考的組件

    將這個組件參考的組件。 外部組件中 [外部] 群組中。

    參考組件。

    加入參考這個組件方案中的組件。

    對於類別而言,選取:

    基底型別

    對於類別而言,加入基底類別和實作介面。

    如果是介面,請將基底介面。

    衍生型別

    對於類別而言,加入衍生類別。

    若為介面,請將衍生的介面和實作的類別或結構。

    所有基底型別

    以遞迴方式加入基底類別或介面階層架構。

    所有衍生型別

    若為類別,請以遞迴方式加入任何衍生類別。

    如果是介面,請將所有衍生的介面和遞迴實作類別或結構。

    內含項目階層架構

    將父容器階層架構。

    使用的型別。

    將所有類別和這個類別使用的成員。

    使用由型別

    將使用這個類別的所有類別和其成員。

    對於方法,選取:

    內含項目階層架構

    將父容器階層架構。

    呼叫的 Methods

    將這個方法呼叫的方法。

    呼叫方法。

    將呼叫這個方法的方法。

    在基底型別已覆寫的方法。

    如需覆寫其他方法或實作介面方法的方法,在覆寫的基底類別,且,如果有的話,實作的介面方法的所有抽象或虛擬方法。

    參考的欄位

    將這個方法所參考欄位。

    如需欄位中,選取:

    內含項目階層架構

    將父容器階層架構。

    參考方法

    加入參考此欄位的方法。

請參閱:

Dd409453.collapse_all(zh-tw,VS.110).gif以視覺化方式檢視組件或二進位檔中的特定相依性

  1. 在 [架構] 功能表上,選擇 [Windows], [架構總管]。

  2. 在第一個資料行, [檔案系統] 在下,選取 [選取檔案]。

  3. 在 [開啟] 方塊中 ,尋找並選取組件或二進位檔。 選取 [開啟] 將它們加入至 [架構總管] 的下一個資料行。

  4. 在下一個資料行中,選取組件或二進位檔。

    根據預設,下一個資料行中顯示選取的項目中的項目。

    提示

    若要選取其他相關項目,請在包含您所選項目的資料行右邊展開摺疊的資料行。在 [節點巡覽] 底下,選取您感興趣的項目類型。在 [對外巡覽] 或 [對內巡覽] 底下,選取您要查看的這種關聯性。請參閱 使用架構總管尋找程式碼

  5. 找出並選取您要將圖形中的所有項目。

  6. 若要建立新的圖表,請在 [架構總管] 工具列上,選取 [建立由任何所選節點的新的圖形文件 [從所有選取的節點建立新的圖形文件] 按鈕

    Visual Studio 會建立圖形並開啟它。

    -或-

    若要將選取項目加入至圖形,請依照下列步驟執行:

    1. 隨即開啟圖形的 .dgml 檔案或 建立空白圖形。

    2. 在 [架構總管] 工具列,請選取 [將所有選取的節點加入至目前可見的圖形文件 將所有選取的節點加入至圖形按鈕

      -或-

      從 [架構總管] 拖曳項目至圖形。

以視覺化方式檢視 C 和 C++ 之間的相依性原始程式檔和標頭檔

若要查看之間的相依性

請執行

方案中的所有原始程式檔和標頭檔

在 [架構] 功能表上,選擇 [產生相依性圖形], [針對 Include 檔]。

機器碼相依性圖形

目前開啟的檔案和相關的原始程式檔和標頭檔

  1. 開啟原始程式檔或標頭檔。

  2. 開啟捷徑功能表在檔案內。 選取 [產生 Include 檔圖形]。

.h 檔案的第一層相依性圖形
注意事項注意事項

當您開啟包含 Visual C++ 專案的方案時,可能需要一些時間更新 IntelliSense 資料庫。此時,您可能無法建立標頭檔 (.h) 或 #include檔案的相依性圖形,直到 IntelliSense 資料庫完成更新。您可以監視 Visual Studio 狀態列中顯示更新進度。若要解決發生的問題或訊息,因為某些 IntelliSense 設定停用,請參閱 疑難排解。

共用相依性圖形

使用 Visual Studio 來儲存和其他使用者共用圖形

  • 使用 [檔案] 功能表將圖形。

    -或-

    做為特定專案的一部分,要儲存圖形,請開啟圖形介面的捷徑功能表。 選取 [移動] <DependencyGraphName.dgml> [輸入] 和專案要儲存圖形的位置。

    Visual Studio 將圖形,因為您可以使用 Visual Studio Ultimate、Visual Studio Premium 和 Visual Studio Professional 的其他使用者共用的 .dgml 檔案。

    注意事項注意事項

    在您使用 Visual Studio Premium 和 Visual Studio Professional 的人共用圖形之前,請確定展開所有群組,顯示隱藏的節點和跨群組連結,並擷取您要在圖形想要看到其他的任何刪除的節點。否則,其他使用者無法看到這些項目。

    若您儲存的圖形是位於模型專案中,或此圖形是從模型專案複製到另一個位置,就會發生下列錯誤。

    「無法將 fileName 儲存在專案目錄外。不支援連結項目。」

    Visual Studio 還是會顯示錯誤,不過,建立儲存的版本。若要避免此錯誤,請將圖形建立在模型專案之外。然後您可以將它儲存到您想要的位置。只將檔案複製到方案中的另一個位置然後再嘗試儲存,這種做法不會有用。

匯出圖形,影像,因此您可以將它複製到其他應用程式,例如 Microsoft Word 文件或 PowerPoint

  1. 開啟圖形介面的捷徑功能表。 選取 [編輯], [複製影像]。

  2. 將影像貼入另一個應用程式中。

匯出圖形, XPS 檔案,以便您可以查看它在類似 Internet Explorer XAML 或 XML 的檢視器

  1. 開啟從圖形介面的捷徑功能表。 選取 [另存為 XPS]。

  2. 在 [另存新檔] 對話方塊中,瀏覽至您要儲存檔案的位置。

  3. 爲圖形。 確定 [存檔類型] 方塊設定為 [XPS 檔 (*.xps)]。 選取 [儲存]。

產生批次處理的圖形

您可以以批次模式產生圖形文件 (.dgml 檔案) 使用命令列工具, GraphCmd.exe 。 例如,您可以執行此工具,在每個組建中尋找已變更組建之間的相依性之後。 若要尋找此工具,請查看下列資料夾:C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE。

注意事項注意事項

GraphCmd.exe 只支援 .NET 程式碼並產生相依性是 Visual Studio 方案的相關組件或 .dgml 檔案中,而不是原始程式碼檔或專案檔。GraphCmd.exe 外執行 Visual Studio,如此,支援在 DGQL 查詢執行的動作會受到限制。

GraphCmd.exe 是使用下列語法:

GraphCmd -? -all -exceptions -input File_Name -query File_Name -exec "DGQL_Statement" -output File_Name -path alias=path

提示

您可以多次指定下列選項:-input-query-exec-path

下表說明 GraphCmd.exe 的選項:

-?

顯示 GraphCmd.exe 的說明。

-all

包含所有中繼查詢結果,而不只包含最後一個節點集的結果。

-exceptions

以圖形文件 (.dgml) 檔案的形式報告查詢例外狀況。

-input File_Name

處理指定的 .dgml 檔案。

這在後續處理大型 .dgml 檔案和篩選它非常有用,可讓您在 Visual Studio 可以更輕鬆地將它。

-query File_Name

執行指定的有向圖形查詢語言 (DGQL 或 .dgql) 檔案。

請參閱:

-exec "DGQL_Statement"

執行指定的 DGQL 陳述式。

請參閱 了解有向圖形查詢語言 (DGQL)。

-output File_Name

輸出指定的 .dgml 檔案。

-path alias=path

指定要在 DGML 文件的輸入與輸出中使用的新別名。

例如:

GraphCmd -output MyGeneratedGraph.dgml -path "MyPathAlias=C:\Program Files\..."

請參閱 常用路徑的別名。

Dd409453.collapse_all(zh-tw,VS.110).gif常用路徑的別名

常用路徑的別名有助於縮減 .dgml 檔案的大小,以及載入或儲存該檔案所需的時間。 若要建立別名,請在 .dgml 檔案的結尾加入 <Paths></Paths> 區段。 在這個區段加入 <Path/> 項目,以定義路徑的別名:

<Paths>
   <Path Id="MyPathAlias" Value="C:\...\..." />
</Paths>

若要從 .dgml 檔案中的某個項目參考別名,請以貨幣符號 ($) 和括號 (()) 括住 <Path/> 項目的 Id:

<Nodes>
   <Node Id="MyNode" Reference="$(MyPathAlias)MyDocument.txt" />
</Nodes>
<Properties>
   <Property Id="Reference" Label="My Document" DataType="System.String" IsReference="True" />
</Properties>

若要編輯 .dgml 檔案,請參閱 編輯和自訂相依性圖形

Dd409453.collapse_all(zh-tw,VS.110).gif了解有向圖形查詢語言 (DGQL)

DGQL 是可用以建置 DGML 的輕量型查詢語言。 DGQL 陳述式採取節點選取和動作交替出現的模式,也就是說每次的節點選取會成為下一個動作的輸入,而該動作的輸出又會成為下一次節點選取的輸入,依此類推。

DGQL 陳述式的格式如下:

<node selection> / <action> / <node selection> / <action> / ...

下表說明用以選取節點的 DGQL 語法:

*

選取所有節點。

+ "text"

選取所有包含 "text" 的節點。

+ Id.Equals("text")

選取 Id 等於 "text" 的所有節點。

+ Background.Contains("text")

選取 Background 屬性的值包含字串 "text" 的所有節點。

+ "text1" + "text2" + ...

選取所有符合 "text1" 或 "text2" 的節點。

+ MyProperty="True"

選取所有具有屬性 MyProperty、且其值為 "True" 的節點。

- Label.Contains("text")

選取所有節點,但 Label 屬性中包含字串 (Contains) "text" 的節點除外。

+ Category.Is("MyCategory")

選取所有具有 MyCategory 分類,或具有繼承自 MyCategory 之分類的節點。

下表說明可對選取的節點執行之有向動作的範例:

範例動作

描述

Microsoft.Contains

傳回輸入節點所包含的所有節點。 您可以將 Contains 取代為不同的連結分類。

Microsoft.Open

開啟輸入節點的原始程式碼。

注意事項注意事項
只能在 Visual Studio 中運作。

Microsoft.AllOutBoundLinks

傳回所有從輸入節點連出至的目標節點。

Microsoft.AllInboundLinks

傳回所有連入至輸入節點的來源端節點。

Microsoft.Core.CreateGroupsByProperties

叫用 GroupByProperties 動作。

Microsoft.AllNodes

傳回整個圖形中到目前為止的所有節點。

資料驅動型動作只會根據輸入節點與連結中的資料來選取項目。 在使用資料驅動型動作比對分類時,會納入繼承的分類。 下表說明資料驅動型動作的範例:

型別

描述

Node:Both:Category

傳回所有具有分類 Category,且與輸入節點有連結 (指向自己或指向輸入連結) 相連的節點。

Link:Both:Category

傳回所有與輸入節點有連結 (指向自己或指向輸入連結) 相連,且具有分類 Category 的節點。

Link:Backward:Category

傳回所有具有指向輸入節點的連結,且具有分類 Category 的節點。

Link:Forward:Category

傳回所有具有從輸入節點指過來的連結,且具有分類 Category 的節點。

Dd409453.collapse_all(zh-tw,VS.110).gif秘訣

  • 一組輸入節點通常會有一個「預設」動作,由 [架構總管] 自動選取。 若要獲得相同的行為,請使用空白動作://

  • 空白字元在 DGQL 中不具意義,因此必要時您可以將查詢全都寫在同一行。 使用 GraphCmd 加上 –exec 選項時,這將有所幫助。

  • 偵錯 DGQL 時,使用 [架構總管] 中的動作 "Execute Expanded" 可讓您看見查詢的每個步驟,並查出未產生預期結果的步驟。

Dd409453.collapse_all(zh-tw,VS.110).gif範例

下列 DGQL 陳述式會依照下列步驟中的說明執行查詢:

+ Id.Equals("Microsoft.Solution.ClassView") / "Microsoft.Solution.ClassView" / * / "Node:Both:CodeSchema_Class" / + CodeSchemaProperty_IsPublic.Equals("True")
  1. 選取 [架構總管] 的第一個資料行的 [類別檢視] 節點。

  2. 執行動作「Microsoft.Solution.ClassView",傳回方案中的所有命名空間。 

  3. 使用 * 選取所有命名空間。

  4. 選取全部具有 CodeSchema_Class 分類且以連結與這些命名空間相關聯 (不論連結方向為何) 的節點。 這些通常會是內含項目連結。

  5. 將產生的類別篩選為只顯示具有屬性 CodeSchemaProperty_IsPublic="True" 的類別。

就技術上而言,動作 "Microsoft.Solution.ClassView" 因為是 [類別檢視] 節點的「預設」動作,所以並不必要。 因此,您可以將該動作取代為 // 以簡化查詢,並將查詢寫成單一一行,如下所示:

+Id.Equals("Microsoft.Solution.ClassView")//*/"Node:Both:CodeSchema_Class"/+CodeSchemaProperty_IsPublic.Equals("True")

疑難排解

下列項目未提供 C 和 C++ 程式碼支援:

  • 基底型別 (Base Type) 不會出現在包含父代階層架構中的圖形。

  • 大部分的 [顯示] 功能表項目提供 C 和 C++ 程式碼無法使用。

可能會發生下列問題,在建置 C 和 C++ 程式碼產生相依性圖形時:

問題

可能的原因

解決方式

不會產生相依性圖形。

方案中的專案成功建立。

更正發生的建置錯誤然後重新產生圖形。

當您嘗試從 [架構] 功能表產生相依性圖形時,Visual Studio 會變得反應遲緩。

程式資料庫 (.pdb) 檔案可能會損毀。

.pdb 檔案會儲存偵錯資訊,例如型別、方法和原始程式檔資訊。

請參閱 [OBSOLETE] 程式資料庫檔案 (C++)

重建方案後再試一次。

IntelliSense 瀏覽資料庫的某些設定已停用。

某些 IntelliSense 設定可能已在 Visual Studio [選項] 對話方塊中停用。

開啟這些設定來加以啟用。

請參閱 進階、C/C++、文字編輯器、選項

[未知方法] 訊息出現在方法節點上。

發生這個問題是因為無法解析方法的名稱。

二進位檔可能沒有基底重新配置表格。

在連結器中開啟 /FIXED:NO 選項。

請參閱 /FIXED (固定基底位址)

程式資料庫 (.pdb) 檔案可能無法建置。

.pdb 檔案會儲存偵錯資訊,例如型別、方法和原始程式檔資訊。

如需詳細資訊,請參閱[OBSOLETE] 程式資料庫檔案 (C++)

在連結器中開啟 /DEBUG 選項。

請參閱 /DEBUG (產生偵錯資訊)

無法在預期的位置中開啟或找到 .pdb 檔案。

請確定預期的位置中有 .pdb 檔案存在。

已從 .pdb 檔案中移除偵錯資訊。

如果在連結器中使用 /PDBSTRIPED 選項,請改為包含完整的 .pdb 檔案。

請參閱 /PDBSTRIPPED (移除專用符號)

呼叫端不是函式,而且為二進位檔案中的 Thunk 或資料區段中的指標。

當呼叫端為 Thunk 時,請嘗試使用 _declspec(dllimport) 來避免 Thunk。

請參閱:

哪些其他是否能執行?

哪裡可以取得詳細資訊?

分類

連結

論壇

網誌