VS 2015 SSIS脚本任务无法调试

时间:2016-11-18 12:40:45

标签: visual-studio-2015 ssis

花了几个小时拉我的头发试图弄清楚为什么我的ssis脚本组件没有在遇到断点时进入调试器。 我在网上搜索并资助64位设置(项目 - > Properies - >调试),但是它没有帮助我。

事实证明,如果我在代码中使用字符串插值($“{someVar}”),则调试器无法启动。 一旦我用旧的string.Format(“{0} ...”,param1,...)方法替换它,我的断点就被击中了,我可以逐步完成代码。

代码以任何一种方式工作,它只是受新语法影响的调试器。

我希望这有助于某人。

5 个答案:

答案 0 :(得分:2)

还花了几个小时拉出我的头发并发现它确实是由于新版本的Visual Studio中无法识别新的Roslyn编译器功能。 (我正在使用带有SSIS脚本任务的VS2015)

为了获得断点,我在早期版本的VS(2012)中打开了项目,并对源代码进行了更改以使其成功编译。一旦我得到了它,我在2012年跑了,瞧! - 它击中了所有断点。重新打开项目并在VS2015中运行并确认它按预期工作。

答案 1 :(得分:1)

也花了几个小时然后终于找到了你的帖子......谢谢你先生!

我也在使用VS2015和SSIS脚本任务。对我而言,函数nameof()负责不启动调试器。用反射替换函数对我有用:Get string name of property using reflection

答案 2 :(得分:1)

实际上,将C#脚本任务限制为C#4.0的语言功能可使Debugger重新焕发活力。在我的情况下,添加单个null运算符会在SQL Server / SSIS 2016上使用Visual Studio 2015(VSTA)导致调试器问题。

要将脚本限制为 C#4.0 ,我们可以在“任务”的“生成”设置中强制执行特定的语言级别

  • 打开有问题的脚本任务,单击“ 编辑脚本... ”按钮以打开Visual Studio(VSTA)。
  • 在解决方案资源管理器中,右键单击 Project 节点,然后选择 Properties
  • 在“项目”窗口中,进入“构建”选项卡,向下滚动并单击“ 按钮。
  • 高级构建设置窗口中,将语言版本从“默认”更改为“ C#4.0 ”。
  • 清理/ 重建脚本任务,修复编译错误。
  • 最后,退出VSTA,重建项目

然后您应该能够再次调试C#脚本任务。

enter image description here

答案 3 :(得分:1)

我想以上已解决了我的问题,但是还有另一个原因/解决方法需要实现,以使脚本任务调试再次起作用。

在我的实例中,问题是Resharper使用的调试器集成,如以下问题的链接解决方案中的用户“ Richard T. LaSalle”所突出显示:Could not set BreakPoint in SSIS ScriptTask

TL; DR,如果使用Resharper,请关闭Debugger Integration

答案 4 :(得分:0)

Microsoft发布了SQL Server Integration Services Projects的更新v3.2,它解决了Roslyn和.Net 4.5之后引入的其他C#语言功能的问题。 C#功能。
坏消息-此修复仅适用于Visual Studio 2019,您必须升级VS才能使用它。