SSMS 17.3部署SSIS包脚本任务版本不兼容问题求助
解决SSIS包部署时VSTA版本不兼容的问题
从你的描述来看,核心问题是SSIS脚本任务的VSTA版本和目标SQL Server 2016的SSIS运行环境不匹配——你现在的脚本任务用了VSTA 15.0(对应SQL Server 2017),但SQL Server 2016的SSIS 13.0只支持VSTA 14.0及以下版本。下面是一步步的解决方案:
1. 明确SSIS版本与VSTA版本的对应关系
先把对应关系理清楚,避免版本混淆:
- SQL Server 2014 (SSIS 12.0) → VSTA 2013(版本号12)
- SQL Server 2016 (SSIS 13.0) → VSTA 2015(版本号14)
- SQL Server 2017 (SSIS 14.0) → VSTA 2017(版本号15)
你的目标是SQL Server 2016,所以必须让脚本任务的VSTA版本降到14.0。
2. 用VS2015重新构建目标为SQL Server 2016的包
你之前选了目标SQL Server 2017,这反而让脚本任务保持了VSTA15.0,应该这么做:
- 打开VS2015,加载你的SSIS解决方案。
- 右键点击项目 → 属性 → 配置属性 → 部署,把目标服务器版本改成
SQL Server 2016。 - 逐个打开包含脚本任务的包:右键点击脚本任务 → 编辑脚本,此时VSTA2015会启动,直接保存脚本(哪怕没做任何修改),这样脚本任务的版本会自动更新为VSTA14.0。
- 重新生成整个解决方案,得到适配2016的ispac文件。
3. 使用对应SSIS 13.0的部署工具
因为目标是SQL Server 2016,必须用130路径下的部署工具:
- 打开命令提示符,切换到路径:
%ProgramFiles%\Microsoft SQL Server\130\DTS\Binn - 用
dtutil.exe或者部署向导来部署你的ispac包,比如:dtutil /FILE "C:\YourPackage.ispac" /DestServer "YourSQL2016Instance" /COPY SQL;"\SSISDB\YourFolder\YourProject" - 如果用SSMS17.3部署,确保在部署向导中选择的目标实例是SQL Server 2016,且SSMS调用的是130版本的SSIS组件(SSMS17.3默认会匹配目标实例版本,但如果有多个SSIS版本安装,可能需要手动指定)。
4. 手动修正dtsx文件的版本(如果自动构建没生效)
如果上述步骤后还是报错,可以手动修改dtsx文件:
- 找到包对应的dtsx文件,用文本编辑器(比如VS Code)打开。
- 查找属性
DTS:VSTAMajorVersion,把它的值从15改成14。 - 保存文件后,重新打包成ispac,再用130路径的工具部署。
5. 验证部署结果
部署完成后,在SSMS中右键点击部署好的包 → 验证,确认不再出现版本不支持的错误。
内容的提问来源于stack exchange,提问作者Nabeel Khan Ghauri
相关产品推荐
相关产品推荐

