调试SSIS脚本组件 - 启用了断点,但不会达到



我正在处理一个SSIS软件包,该软件包在数据流中具有一些脚本组件(在C#中)。

我一直都在使用突发点,并且效果很好,没有任何问题。

但是昨天突然它停止工作而没有丢任何错误或任何错误。该脚本在没有破裂或任何错误的情况下工作正常,也给我带来了预期的结果,但不会在断点点上停止。

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

Google,尝试了其他提供的解决方案。

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

有人有这种经验吗?

环境:Windows 10 Pro,vs 2017

请注意,如果您使用的是较新版本的Visual Studio,而不是使用SSIS包的创建,则需要避免编译器不理解的C#语法。如果您不这样做,那么您的断点就不会被击中。

例如,我打开了一个在Visual Studio 2015中使用Visual Studio 2017创建的软件包。我使用了较新的" $"字符串插值而不是String.format(),这导致调试器不会达到任何突破点。将字符串插值恢复到String.format()使调试器再次工作。

也有相同的问题。花了半天的时间应该检查我的笔记,因为我发现了这一点并以前解决了,至少对我而言。

截至今天,已升级到最新的VS2017和SSDT,没有帮助。最终创建了一个简单的软件包,仅具有具有CSV源的数据流,脚本转换组件以及RecordSet目标。在脚本组件中设置一个断点,并起作用。

将项目属性与我的"真实"项目进行了比较,并发现配置属性|调试|Interactivemode是错误的;在测试项目中确实如此。将其设置为真实的项目,并且断点奏效。

我忘记了我将其设置为FALSE测试软件包错误处理。

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

最新更新