c# - VS 2015 SSIS 脚本任务无法调试

标签 c# c#-4.0 visual-studio-2015 ssis

只是花了几个小时拉我的头发试图找出为什么我的 ssis 脚本组件在遇到断点时没有闯入调试器。
我在网上搜索并关闭了 64 位设置(项目 -> 属性 -> 调试),但它对我没有帮助。

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

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

我希望这可以帮助某人。

最佳答案

事实上,将 C# Script Tasks 限制为 C# 4.0 的语言特性使调试器恢复生机。就我而言,在 SQL Server/SSIS 2016 上使用 Visual Studio 2015 (VSTA) 添加单个空合并运算符会导致调试器问题。

将脚本限制为 C# 4.0 我们可以强制执行特定的 语言水平 在任务的build设置中:

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

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

    enter image description here

    关于c# - VS 2015 SSIS 脚本任务无法调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40677400/

    相关文章:

    regex - 用单个 Regex.Replace() 替换多个字符串 Replace()

    c# - 智能感知在我输入时删除代码

    c# - 在 mvc 的 OnActionExecuting 中获取 Controller 的角色属性

    C# 如何触发 tabcontrol 特定选项卡中的关键事件?

    c# - 如何像在关闭事件中那样从 wpf 窗口中删除焦点?

    Visual Studio 可以用来运行带有 ARM 脚本的 C 代码吗?

    c# - Visual Studio 中的 Entity Framework : database is not created with DbContext base constructor

    c# - 单击时如何检索控件的容器

    .net - C#4.0如何将变量传递给线程?

    c#-4.0 - 访问路径被拒绝 - C#