【问题标题】:Debugging SSIS Script Component - Breakpoint is enabled but it does not hit调试 SSIS 脚本组件 - 断点已启用但未命中
【发布时间】:2017-12-04 22:03:46
【问题描述】:

我正在开发一个 SSIS 包,该包在数据流中包含一些脚本组件(在 C# 中)。

我一直使用断点,并且工作正常,没有任何问题。

但昨天它突然停止工作,没有抛出任何错误或任何错误。 该脚本工作正常,没有中断或任何错误,也给了我预期的结果,但不会在断点处停止。

我没有更改任何 Visual Studio 配置或项目配置。

Google 并尝试了其他人提供的所有解决方案。

清除所有缓存和所有调试对象,再次重建解决方案,重新启动机器,但这些都不起作用。

有人有这种经历吗?

环境:Windows 10 专业版,VS 2017

【问题讨论】:

  • 已将 Visual Studio 更新到最新版本,但相同..
  • 与旧版本比较,但无法找到导致此问题的任何线索..
  • 您是否在任何表达式中使用 $ 符号?使用 $ 符号调试器时也不会命中:)

标签: c# debugging ssis breakpoints


【解决方案1】:

请注意,如果您使用的 Visual Studio 版本比创建 SSIS 包时使用的版本新,则需要避免编译器无法理解的 C# 语法。如果你不这样做,你的断点将不会被命中。

例如,我使用 Visual Studio 2017 打开了在 Visual Studio 2015 中创建的包。我使用了较新的“$”字符串插值而不是 string.Format(),这导致调试器没有遇到任何断点。将字符串插值恢复为 string.Format() 使调试器再次工作。

【讨论】:

    【解决方案2】:

    有同样的问题。 花了半天时间,应该检查一下我的笔记,因为我之前发现并解决了它,至少对我来说是这样。

    截至今天已升级到最新的 VS2017 和 SSDT,没有任何帮助。最后创建了一个简单的包,其中只有一个具有 csv 源、脚本转换组件和记录集目标的数据流。在脚本组件中设置一个断点,它就起作用了。

    将项目属性与我的“真实”项目进行比较,发现配置属性 |调试 | InteractiveMode 为 False;在测试项目中是真的。在实际项目中将其设置为True,断点工作。

    我忘记了我将它设置为 False 来测试包错误处理。

    【讨论】:

      【解决方案3】:

      终于找到问题的原因了,原因是我在脚本里面使用了条件访问操作符。 编译器正确编译代码并且工作正常,但调试器不知何故不理解该运算符并崩溃。 似乎 SSDT 在调试时使用旧的 C# 版本..

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-12
        • 1970-01-01
        • 2010-11-05
        • 2017-10-07
        • 2011-10-11
        • 2013-11-24
        • 1970-01-01
        • 2021-03-22
        相关资源
        最近更新 更多