2011-02-28 48 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

相关问题