首页 > 解决方案 > 当从 Visual Studio 构建/部署工作正常时,ispac 文件部署错误

问题描述

我们有两个包作为一项工作的一部分。我们将这些相同的包从一个 SQL Server 集成服务目录 SSISDB 文件夹复制到同一集成服务目录 SSISDB 文件夹(相同命名空间)中的另一台 SQL Server。在复制了包的新服务器上运行此作业时,该作业运行但失败并且也不会产生错误消息(我们记录了任何错误消息)。

从 Visual Studio 构建和部署这两个相同的包到相同的 SSISDB 文件夹然后运行作业时,作业会按预期运行。

通过 .ispac 文件部署时,我们遇到错误的脚本任务

ScriptTaskName: There was an exception while loading ScriptTask from XML: 
System.Exception: The Script Task "ST_0001a..." uses version 15.0 script 
that is not supported in this release of Integration Services. To run the 
package, use the Script Task to create a new VSTA script. In most cases, 
scripts are converted automatically to use a supported version, when you 
open a SQL Server Integration Services package in %SQL_PRODUCT_SHORT_NAME% 
Integration Services. at 
MicrosoftSqlServer.Dts.Tasks.ScriptTaskScriptTaskLoadFromXML(XmlElement 
elemProj, IDTSInfoEvents events)

为什么只有构建和部署方式才能使包按预期工作?

标签: sql-serverssissql-server-data-tools

解决方案


这种错误有几个可能的原因。
首先- 您应该将您的SSDT 版本从 MS更新到最新版本,在项目属性中设置正确的目标SQL Server 版本并重建包。当此属性重置为SQL vNext时,可能会出现这种情况。
声明说您的 SSDT 版本包含导致此错误的错误。

其次- 由于某种原因,当从 SSMS 部署 .ispac 或通过在File Explorer中单击它时,SSMS 会隐式地将项目和其中的包升级到自己的版本。有关此行为的详细报告。我怀疑你有 SSMS 2017 并且它执行脚本任务到版本 15 的隐式升级。
如果你想由支持团队部署包而不使用 SSMS,这里是方法。使用IsDeploymentWizard - Microsoft 实用程序来管理包和项目部署。它具有 GUI 和命令行参数来处理部署。
以下是其中一个项目的示例:

isdeploymentwizard /S /SP:"D:\Project\Proj.ispac" /DS:"myserver\instance" /DP:"SSISDB/ProjectFolder"

确保IsDeploymentWizard 从 SQL bin 目录启动%ProgramFiles%\Microsoft SQL Server\130\DTS\Binn,而不是从 SSMS。


推荐阅读