SSIS 脚本任务失败版本 15.0 脚本?

SSIS script task fail version 15.0 script?

我有一个在 SQL Server 2016 上运行的 2012 SSIS 项目。我的开发机器和服务器上都有 SSDT 2015。除脚本任务外一切正常 - 我对现有脚本任务进行了更改并重建并重新部署了项目,但我收到以下错误:

Script task uses version 15.0 script that is not supported in this release of integration services. To run the package, create a new script.

我试过以下方法:

它在 SSDT 2015 中运行良好,但一旦部署,当通过 SSMS 执行包时,它会失败并出现上述错误 - 这是我的开发箱和服务器的结果。我以为 14.0 是 2016 年?有什么办法可以解决这个问题吗?

脚本任务(在包中)无法通过服务器上的集成服务目录执行,但在 SSDT 中工作正常。

以下是对我有用的方法。如果您使用 SSMS 并尝试通过 Integration Services Catalog(导入和部署)添加 DTSX(其中包含脚本),它将失败。但是,如果您在 Visual Studio 中使用 Project>Deploy 选项,它将成功。我的目标是 SQL 2016 年,SSDT 是 2015 年。请注意,在项目下是我使用的升级所有包选项。我不知道这是否有必要,我认为没有必要,但以防万一。

这个错误真的很烦人,也很愚蠢。感谢 Microsoft 使用 SSDT 17+ 在 2014 年和 2016 年的服务下进行完全错误的开发 (他们的意思是 sh.t-sh.t-魔鬼工具?)

解决此问题的最简单方法是使用 BIDS Helper 在 SQL 服务器上部署单个包。请确保您设置的项目兼容性与目标服务器相同。

相同的包(只拖入了一个空的默认脚本),两种类型的部署 - 在 SQL 服务器上将副本另存为...,然后右击 BIDS Helper - 部署。

运行 此包来自代理作业。 使用第一种部署类型 - 你会得到关于 15.0 版本的错误,使用第二种类型 - 你不是。我对此很满意)))

这个article帮我解决了这个问题。使用 SSMS 2017 部署 ispac 文件时,Visual Studio 2015 和 SQL Server 2016 遇到了同样的问题。当我开始使用 SSMS 2016 时,一切都开始正常工作。

部署单个包或整个项目时存在差异:

如果部署单个包,用于部署单个包的 visual studio 版本必须与用于部署整个项目的 Visual Studio 版本相同。

如果是部署整个项目那么这些脚本版本问题在部署的时候VS已经调整过了,所以应该不会出现这个问题。

我通过从其他环境 SQL management studio 集成服务中导出 *.ispac 文件得到了类似的错误。 从 visual studio project/bin/development 获取 *.ispac 解决了此类错误