使用 Interop 时,SSIS 脚本任务断点不起作用 Excel
SSIS Script task breakpoints doesn't work when using Interop Excel
当我添加 Microsoft Excel 对象库(参考 Microsoft.Office.Interop.Excel)时,放置在 c# 代码中的断点停止工作。我必须使用 MessageBox.Show() 进行调试。 让断点工作是一个解决方案吗?
如何重现:
- 创建一个新的 SSIS 包。
- 添加脚本任务。
使用一些简单的代码编辑脚本任务,例如:
// TODO:在此处添加您的代码
string test = "test";
MessageBox.Show("test " + test);
Dts.TaskResult = (int)ScriptResults.Success;
在 MessageBox 行放置一个断点,然后启动调试 (F5)。断点有效!
- 再次编辑脚本任务,添加对 Microsoft Excel 对象库 16.0(COM 对象部分)的引用。
- 再次尝试调试。断点不起作用!
- 你明白了。
我在 32 位 Windows7 上使用 DataTools (Visual Studio 2015),目标框架是 .NET Framework 4.5。
因为Excel.Interop是COM扩展,带有COM扩展的C#代码不能使用断点。因此,我使用 MessageBox.Show
或静态 class 将给定字符串记录到 SQL table 以查看我的 C# 代码
中发生了什么
当我添加 Microsoft Excel 对象库(参考 Microsoft.Office.Interop.Excel)时,放置在 c# 代码中的断点停止工作。我必须使用 MessageBox.Show() 进行调试。 让断点工作是一个解决方案吗?
如何重现:
- 创建一个新的 SSIS 包。
- 添加脚本任务。
使用一些简单的代码编辑脚本任务,例如:
// TODO:在此处添加您的代码
string test = "test"; MessageBox.Show("test " + test); Dts.TaskResult = (int)ScriptResults.Success;
在 MessageBox 行放置一个断点,然后启动调试 (F5)。断点有效!
- 再次编辑脚本任务,添加对 Microsoft Excel 对象库 16.0(COM 对象部分)的引用。
- 再次尝试调试。断点不起作用!
- 你明白了。
我在 32 位 Windows7 上使用 DataTools (Visual Studio 2015),目标框架是 .NET Framework 4.5。
因为Excel.Interop是COM扩展,带有COM扩展的C#代码不能使用断点。因此,我使用 MessageBox.Show
或静态 class 将给定字符串记录到 SQL table 以查看我的 C# 代码