从脚本组件 (SSIS) 调试 .NET dll

Posted

技术标签:

【中文标题】从脚本组件 (SSIS) 调试 .NET dll【英文标题】:Debugging .NET dll from script component (SSIS) 【发布时间】:2011-01-12 22:42:22 【问题描述】:

有没有办法从被引用的 SSIS 脚本组件调试 .Net dll。

谢谢

【问题讨论】:

【参考方案1】:

您可以将 Visual Studio 附加到任何本地进程(如果是 remote debugger is set up,则可以附加到远程进程。)

    在 Visual Studio 中打开 DLL 项目 从“调试”菜单(或“工具”菜单)中选择“附加到进程”。 单击标有“附加到”的框旁边的“选择...”按钮。确保选中调试这些代码类型/托管代码。 在可用进程列表中,找到 SSIS 进程。我不记得手头的进程名称,但它应该有 x86,类型列中的托管。可能必须选中“显示所有用户的进程”。 点击附加。

现在您可以像往常一样进入调试器,并且断点应该会被命中。如果由于某种原因无法加载调试符号,请打开“模块”窗口,找到托管的 DLL,右键单击并“加载符号”以找到它们。

【讨论】:

您能否详细说明如何加载符号?我正在尝试调试部署到 GAC 的自定义程序集,并且程序集的断点都没有处于活动状态,因为它们都说“当前不会命中断点。没有为此文档加载任何符号。”当我尝试在脚本组件调试器中加载程序集的符号时,没有任何反应。【参考方案2】:

System.Diagnostics.Debugger.Launch() 和System.Diagnostics.Debugger.Break() 对这类问题很有用。但是,请尝试 Josh 首先说的调试菜单中的“附加到进程”,因为它在工作时更容易。

【讨论】:

以上是关于从脚本组件 (SSIS) 调试 .NET dll的主要内容,如果未能解决你的问题,请参考以下文章

SSIS:如何调试在脚本组件内部引用的自定义程序集

SSIS常用的包—脚本和组件任务

如何在 SSIS 脚本组件中使用 OLEDB 连接执行 SqlCommand

SSIS 2008 是不是与 .Net 框架 3.5 兼容

c# SSIS脚本组件中的转义双引号从SQL数据发送JSON

SSIS - 无法加载 DLL 'clrcompression.dll':找不到指定的模块