You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio 2013中VB脚本任务Enum 'ScriptResults'冲突问题求助

解决SSIS VB脚本任务中ScriptResults枚举冲突问题

嘿,这个问题我之前帮不少开发者排查过,本质就是SSIS脚本任务的默认模板代码和你手动添加的枚举撞车了!

问题根源

当你在Visual Studio 2013里创建SSIS的VB脚本任务时,系统会自动在ScriptMain类中生成一个ScriptResults枚举,用来向SSIS引擎报告脚本的执行状态,它的默认代码长这样:

Enum ScriptResults
    Success = 0
    Failure = 1
End Enum

这个枚举是脚本任务正常工作的必要部分——SSIS依赖它判断任务是否执行成功。如果你自己又手动定义了一个同名的ScriptResults枚举,就会触发“enum 'ScriptResults' and enum 'ScriptResults' conflict in class 'ScriptMain'”的编译错误。

分步解决方案

  1. 保留默认枚举,删除自定义的重复枚举
    绝对不能删除系统自动生成的那个ScriptResults,否则脚本无法向SSIS返回执行状态,会导致任务执行异常。你需要找到自己手动添加的同名枚举并删除它。

  2. 处理删除后的遗留问题
    如果你删除自定义枚举后出现新错误,大概率是代码里还在引用这个自定义枚举的成员,这时候分两种情况处理:

    • 如果这个自定义枚举是用来标记业务逻辑状态(比如文件复制成功/失败):重新给你的枚举起个独特的名字,比如FileOperationResults,然后替换代码里的所有引用。
      示例修改:
      ' 原来的自定义枚举(已删除)
      ' Enum ScriptResults
      '     FileCopied = 2
      '     FileMissing = 3
      ' End Enum
      
      ' 替换为新枚举
      Enum FileOperationResults
          FileCopied = 2
          FileMissing = 3
      End Enum
      
      ' 代码里的引用也要改
      If FileExists Then
          Return FileOperationResults.FileCopied
      Else
          Return FileOperationResults.FileMissing
      End If
      
    • 如果是误写了重复的枚举:直接删除自定义的,代码里如果需要返回任务状态,直接用默认的ScriptResults.Success或ScriptResults.Failure即可。

内容的提问来源于stack exchange,提问作者zack hood

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:37:52