【问题标题】:SSIS Script task breakpoints doesn't work when using Interop Excel使用 Interop Excel 时,SSIS 脚本任务断点不起作用
【发布时间】:2018-04-06 13:10:33
【问题描述】:

当我添加 Microsoft Excel 对象库(参考 Microsoft.Office.Interop.Excel)时,放置在 c# 代码中的断点停止工作。而且我必须使用 MessageBox.Show() 进行调试。这是使断点工作的解决方案吗?

如何重现:

  1. 创建一个新的 SSIS 包。
  2. 添加脚本任务。
  3. 用一些简单的代码编辑脚本任务,例如:

    // TODO:在此处添加您的代码

    string test = "test";
    
    MessageBox.Show("test " + test);
    
    Dts.TaskResult = (int)ScriptResults.Success;
    
  4. 在 MessageBox 行上放置一个断点,然后启动调试 (F5)。断点有效!

  5. 再次编辑脚本任务,添加对 Microsoft Excel 对象库 16.0(COM 对象部分)的引用。
  6. 再次尝试调试。断点不起作用!
  7. 你明白了。

我在 32 位 Windows 7 上使用 DataTools (Visual Studio 2015),目标框架是 .NET Framework 4.5。

【问题讨论】:

  • 如果您能提供minimal reproducible example,那就太好了。如果删除引用,问题会停止吗?
  • Is it a solution? 当然,使用MessageBox.Show() 是一种解决方案,但不是最好的解决方案。您也可以登录到文件。如果没有一些示例代码来演示您在做什么,我们无能为力。
  • 断点不再起作用的原因有很多,但如果不了解具体情况,几乎不可能说出原因。
  • @DanWilson 唯一的原因是添加了 Interop Excel。没有其他任何改变
  • 请提供一些代码,包括您试图中断的行。提供您正在使用的 Excel 互操作版本。提供您的项目框架版本。我们需要详细信息。

标签: c# ssis excel-interop


【解决方案1】:

这是因为 Excel.Interop 是 COM 扩展,而带有 COM 扩展的 C# 代码不能使用断点。因此,我使用MessageBox.Show 或静态类将给定的字符串记录到 SQL 表中,以查看我的 C# 代码中发生了什么

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    相关资源
    最近更新 更多