我使用Project White來測試我的應用程序。該項目的二進制文件包含Castle項目的一個DLL:Castle.DynamicProxies2.dll(或這些行中的某個項目)。不幸的是,這個DLL沒有提供符號(PDB)文件。其他一些DLL的確有自己的符號文件。如何保存生成的符號文件?
當我運行我的UITest時,需要花費很多時間來生成此Castle DLL的符號文件。我想將這個生成的DLL保存在某個地方,所以它不必一直生成。
我在我的Visual Studio設置中有一個符號緩存文件夾,當我運行應用程序時,按下「加載所有符號」,我得到一個消息框告訴我它正在下載Castle DLL的符號文件。但是,它不會出現在我的緩存文件夾中(可能是因爲它是專有的非Microsoft DLL)。 「始終加載模塊旁邊的符號」選項已打開。如果我關閉它,甚至連我自己項目的符號都不會加載。 Castle DLL被複制到輸出文件夾,否則它將不會運行。
有什麼辦法保持這個自動生成的符號文件,而不是每次都創建它?我查看了臨時文件夾,但找不到它。
PDB文件不是從已編譯的DLL生成的,因爲準確生成它們所需的數據不再存在於DLL中,只存在於源代碼(例如本地變量名稱)中。它們通常包含在DLL中用於調試目的。可以使用反編譯器重新創建PDB的近似值,但似乎並未使用它。那麼「生成符號文件」是什麼意思?你確定生成了一些東西嗎? –
嗯,Visual Studio告訴我「加載符號文件的城堡...」我希望有一種方法來保存這個或告訴VS不要找它,因爲它需要相當多的時間每次。現在行爲似乎消失了,不知道我改變了什麼。我將調試選項更改爲僅爲我自己的解決方案程序集加載符號,同時仍將符號文件加載到模塊旁邊。 – Davio