有一个用C#编写的项目,它使用了一些外部库。 这些是签名库(带有版本,密钥),通常在GAC中注册。
我的应用使用这些库。在处理和调试应用程序时,我希望有时可以访问库的源代码,看看我的代码如何更深入以及内部发生了什么。
有些库相互引用(所以他们期望具体版本,带密钥)
如何通过查看源代码的能力来准备可调试的库?
是唯一可以将DLL的源添加到项目中的选项(再次编译)并让我的应用程序引用它吗?
答案 0 :(得分:4)
首先,设置symbol server。这使您的调试器可以下载库的pdb文件。这甚至适用于GAC中的程序集。
接下来,source index the pdb files。这将信息嵌入到pdb文件中,使调试器能够从源服务器检索源(例如,Mercurial,SVN,TFS)。
因此,您最终需要一个源服务器和一个符号服务器,并为您的构建过程添加几个步骤。
答案 1 :(得分:0)
部署时无法调试库,可以使用异常处理和日志记录在执行时跟踪事件。 或者您可以使用新的Intellitrace(http://msdn.microsoft.com/en-us/library/dd264915.aspx)来跟踪执行情况。
答案 2 :(得分:0)
如果可用,请将引用程序集的调试符号(.pdb文件)添加到程序集的同一文件夹中。
如果它是一个开源项目,只需下载源代码或通过源代码管理检查它,并在解决方案而不是程序集中引用项目本身。
对于已关闭的源程序集,您可以向供应商询问源代码是否可用,或者要求他们使用.pdb文件进行调试编译。