调试 SSIS 脚本组件 - 断点已启用但未命中

Debugging SSIS Script Component - Breakpoint is enabled but it does not hit

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

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

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

我没有更改任何 visual studio 配置或项目配置。

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

清除所有缓存和所有调试对象,再次重建解决方案,并重新启动机器,但 none 个有效。

有没有人有过这种经历?

环境:Windows10 Pro,VS 2017

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

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

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

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

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

将项目属性与我的 "real" 项目进行比较,发现 Configuration Properties |调试 | InteractiveMode 为 False;在测试项目中是真的。在实际项目中设置为True,断点就起作用了。

我忘了我将其设置为 False 以测试包错误处理。