2012-03-27 23 views
2

我有一個項目,在其他dll中有多個對我自己代碼的引用。其中一個dll在我運行網站時加載它的pdb文件,而另一個則沒有。一些項目不會加載PDB文件

從輸出我看到這一點:

LOTS_OF_TEXT \ Shared.BusinessLayer.DLL '
LOTS_OF_TEXT \ Shared.Visual.Utilities.DLL',符號加載。

我重複檢查,他們都有相應的pdb文件在「LOTS_OF_TEXT」的位置......但其中一個加載符號(並允許調試),但其他沒有。

爲什麼?如何獲得Shared.BusinessLayer.DLL以加載符號,以便我可以調試它?

編輯
以供參考,我有麗城複製的PDB文件/AppData/Local/Temp/SymbolCache當他們改變...這是我的調試設置告訴Visual Studio來查找符號。

+0

順便說一句...什麼是麗城?谷歌上的'Belvedere C#'產生沒有用的東西。 – 2012-03-27 22:55:26

+1

複製.pdbs通常是一個壞主意。將它們留在生成的地方,可執行文件存儲原始路徑。調試+ Windows +模塊,右鍵單擊模塊並選擇「符號加載信息」以查看調試器查找pdb的位置。 – 2012-03-27 23:24:21

+0

在您當前的構建配置中,是否將該特定項目設置爲調試? – 2012-03-27 23:24:56

回答

2

開始一個vsvars CMD提示符(或的powershell)並瀏覽到LOTS_OF_TEXT文件夾。 Visual Studio附帶一個名爲'dumpbin.exe'的工具,它允許您檢查.dll或.exe的結構。要查找調試符號,在命令提示符dumpin運行鍵入dumpbin /headers Shared.BusinessLayer.DLL,你應該看到在標題信息符號路徑的dll 如果它實際上是用符號構建的。只要符號在那裏,或者在搜索路徑上,它們應該被加載。

這就是說,檢查視覺工作室設置爲加載所有符號轉到工具 - >選項 - >調試 - >符號,並確保'自動加載符號:'單選按鈕設置'所有模塊,除非排除「,並且排除列表不包含任何相關圖像。

+0

「在該dll上運行dumpin/headers」是什麼意思? – 2012-03-27 22:56:28

+0

@James - dumpbin.exe是Visual Studio附帶的工具,可讓您查看.dll和.exe圖像的各個方面。如果您的dll具有符號,那麼這些符號的路徑將寫入圖像的標題中。 – 2012-03-27 22:58:47

+0

謝謝 - 在我的情況下,引用的.exe文件找到了「排除列表」 – Jonno 2012-08-17 02:13:11

相關問題