我正在开发一个SSIS包,它在数据流中有一些脚本组件(在C#中)。
我一直使用断点并且工作正常,没有任何问题。
但昨天它突然停止工作而没有任何错误或任何错误。 该脚本工作正常,没有中断或任何错误,给我预期的结果,但不会在断点上停止。
我没有更改任何可视演播室配置或项目配置。
Google并尝试了其他人提供的所有解决方案。
清除所有缓存和所有调试对象,再次重建解决方案,同时重新启动计算机,但这些都不起作用。
有没有人有这种经历?
环境:Windows 10 Pro,VS 2017
答案 0 :(得分:1)
请注意,如果您使用的是比使用SSIS包创建的Visual Studio更新版本,则需要避免编译器无法理解的C#语法。如果不这样做,您的断点将不会被击中。
例如,我使用Visual Studio 2017打开了在Visual Studio 2015中创建的包。我使用较新的“$”字符串插值而不是string.Format(),这导致调试器没有达到任何断点。将字符串插值恢复为string.Format()使调试器再次工作。
答案 1 :(得分:1)
有同样的问题。 花了半天时间,应该检查一下我的笔记,因为我至少在我之前找到并解决了。
截至目前已升级到最新的VS2017和SSDT,无济于事。最终创建了一个简单的程序包,其中只有一个数据流,该数据流具有一个csv源,一个脚本转换组件以及一个记录集目标。在脚本组件中设置一个断点,就可以了。
将项目属性与我的“真实”项目进行了比较,发现调试| InteractiveMode为False;在测试项目中这是对的。在实际项目中将其设置为True,断点就起作用了。
我忘记了将它设置为False来测试程序包错误处理。
答案 2 :(得分:0)
最后找到了问题的原因,原因是我在脚本里面使用了条件访问操作符。 编译器正确编译代码并且工作正常,但调试器不知道该操作符和崩溃。 看起来像SSDT在调试时使用旧的C#版本。