我有一个包含多个C#项目的解决方案。其中一个项目是可执行文件,其余是DLL。
问题是,某些项目实际上并不在与可执行启动项目相同的进程上运行。这是因为某些项目实际上是WCF服务的扩展,允许服务使用可执行文件。
我的问题是:是否有可能以任何方式,形状或形式在所述项目中设置断点?我知道能够附加到流程"但我不确定这对我来说是一个很好的解决方案。
我想:
编辑:我不确定附加到流程的唯一原因'对我来说效果很好是因为我对这个功能没什么经验 - 也许这就是我应该使用的东西?我还可以加载.pdb文件吗?
编辑2:如果其中一位评论者想提交他们的评论作为答案,我会接受
答案 0 :(得分:1)
附加到WCF服务似乎是该工作的确切工具:
它允许您附加到正在运行的进程,即使您只获得该进程的插件/扩展的代码和PDB。您可以在自己的代码中设置断点,当第三方进程调用它们时,它们会被触发。
您可以从现有的VS实例附加到任何进程,即使该实例用于调试其他可执行文件,在本例中是您的主EXE项目。您可以开始调试您的应用程序,然后在进行服务调用之前附加到服务。
确保尽管WCF服务调用的DLL与VS实例中的DLL相同 - 如果他们从与VS构建输出相同的位置调用它们,那么你将会是精细。如果没有,请确保它们已同步。