Ser*_*ejs 24 c# debugging class-library visual-studio visual-studio-debugging
有一个执行C#脚本的外部工作流,可以使用DLL文件(我的类库).
是否可以将调试附加到我的类库项目中,这样一旦这个WF调用它就会遇到断点?
谢谢
T.J*_*der 28
是的,您可以使用Visual Studio执行此操作.您有两种选择:
打开你的DLL项目.
在项目的属性上,转到" 调试"选项卡.
选择启动外部程序并提供将调用您的DLL的外部程序的路径,以及您可能需要提供的任何命令行参数,以及相关的工作目录.
保存项目.
在代码中设置您想要的断点.
按F5开始调试.(此时,你的断点会说它们不会被命中,因为符号没有被加载.现在不用担心.)
做任何事情都可以使外部应用程序加载您的库并运行您的代码.
Visual Studio将检测模块加载,加载符号并在断点处停止.
如果您无法启动该流程但必须附加到已经运行的流程,您也可以这样做:
(旁注:如果您使用的是Visual Studio的"Express"版本,我认为它不具备此功能,但我不确定.这很容易说明:您要么拥有菜单下面步骤4中提到的项目与否.)
确保进程正在运行.
打开你的DLL项目.
设置你的断点等
从Debug菜单中,选择Attach to process ...
在结果对话框中,在列表中找到该进程,突出显示该进程,然后单击" 附加".
Visual Studio将进入调试模式.(此时,你的断点会说它们不会被命中,因为符号没有被加载.现在不用担心.)
执行任何操作以使外部进程加载并运行代码.
Visual Studio将检测外部进程中的模块负载,加载符号,并在断点处停止.
注意在这两种情况下,如果外部进程从bin/Debug项目文件夹以外的其他位置加载DLL ,则必须确保每次构建时将DLL复制到该其他位置(您可以将其设置为自动执行项目选择).否则,Visual Studio将无法检测到正在加载的DLL是您尝试调试的DLL.