2011-02-28 47 views
0

我有一個Visual Studio解決方案(C#),它代表了我們的應用程序的核心。我們構建它,它包含大約10個左右具有相應PDB的DLL。從另一個預先構建的解決方案加載調試信息

我有幾個其他的VS解決方案,每個解決方案都用於我們的客戶。這些VS解決方案使用核心DLL並根據需要添加自己的位。 「核心」有主.exe文件,這樣我們就在具體解決辦法如下

  • 在一個項目的EXE/DLL文件/ PDBS複製到$(TARGETDIR)
  • 設置項目後生成步驟調試設置爲「啓動外部程序」指向.exe

這一切工作,這似乎有點笨拙。

我的問題是:

當通過客戶的具體解決方案上運行,我怎麼能

  • 有核心項目自動打開的代碼,當我踏進去
  • 能夠打開一個核心文件並設置一個斷點

我習慣了Java,你從Java IDE引用編譯和源jar /目錄,這是pret太多了。在Visual Studio(DLL和PDB)中如何做到這一點?

(我寧願避免GAC如果可能的話,因爲我們有時有幾個地方建立核心的周圍,同時工作在不同的項目)

回答

1

邁克,如果你打開一個「更高的堆棧」的解決方案它引用了一個核心解決方案,您可以打開核心解決方案的源文件,並在其中放置一個斷點,然後當您調試當前解決方案時,如果.pdb文件可用,Visual Studio足夠智能地進入並觸發斷點bin文件夾。

+0

謝謝我會試試這個,但是有沒有這樣做沒有.cs文件?在理論上,PDB是否有足夠的信息來自己做這件事? – 2011-02-28 21:06:41

+0

pdb具有調試符號但不包含源代碼,您需要兩者。 – 2011-02-28 21:13:00

+0

有趣的是,前一段時間我設法加載了核心的.NET框架代碼符號,所以我可以調試到Control.cs和co。這些信息來自哪裏?那些來自Microsoft符號服務器而不是PDB的魔術信息? – 2011-02-28 21:26:22

1

要自動將調試控制遍歷到核心源文件中,請確保從本地構建核心解決方案引用核心dll,並確保能夠訪問它。 另一種方法是在覈心dlls被引用之後,只需打開要在其中放置中斷點和調試的CS文件。

+0

我參考了核心DLL(如在項目引用中),並且如上所述,DLLs/PDB在本地複製,但遍歷不會發生。 – 2011-02-28 21:05:21

+0

不要將核心dll複製到不同的bin位置,只是嘗試從它所在的位置進行引用。 – Kumar 2011-02-28 21:12:33

+0

還要確保項目配置在編譯之前設置爲調試,並在編譯後查看生成的pdbs(只需進行完整性檢查即可)。 – Kumar 2011-02-28 21:18:43

相關問題