如何在SSIS中更改脚本任务版本?


10

我在VS2015的SSIS项目中添加了脚本任务。当我部署到SQL Server 2016时,我收到一条错误消息,说明该version 15.0脚本不受支持。

这在哪里version 15 come from?在阅读有关Stack Overflow的其他类似问题时,我看到您可以将项目的目标版本设置为SQL Server 2012,这就是我所做的(最终部署目标是SQL Server 2012)。

我也尝试删除并重新创建脚本任务。并且在脚本的信息中,它说它正在使用C#的V10。

我该如何解决?

脚本任务:错误:从XML加载脚本任务时发生异常:System.Exception:脚本任务“” ST_a1ad9dc5972c42b68c12a13155f10b6d“”使用的是此发行版本的Integration Services不支持的15.0版脚本。要运行程序包,请使用脚本任务创建新的VSTA脚本。在大多数情况下,当您在%SQL_PRODUCT_SHORT_NAME%Integration Services中打开SQL Server Integration Services程序包时,脚本会自动转换为使用受支持的版本。在Microsoft.SqlServer.Dts.Tasks.ScriptTask.ScriptTask.LoadFromXML(XmlElement elemProj,IDTSInfoEvents事件)“

我还在SSDT 2012中打开了该项目,并使用了其他名称进行了重建。同样的错误。似乎必须有一个未被删除的引用或其他内容。

此问题的解决方案(/programming/34893267/ssis-script-task-vs15-not-work-when-deploy-on-sql-server-2014)均无效。

查看脚本所在包中的XML,我可以轻松地找到该任务,并且在任何地方都没有引用版本15。

==========编辑

将项目复制到托管数据库的计算机上,打开VS2015并从那里进行部署后,该包将执行。

然后,当回到我的机器并在那里构建时,事实并非如此。

这是错误吗?或者我是在做些愚蠢的事情,期望构建产生与使用VS中的向导相同的部署向导...

我有SQL Server 2016(13.0.4411.0),ssisdb具有架构版本(13.0.1601.5)。

我使用的是在Visual Studio 2015中创建的集成服务包。脚本组件具有以下路径:C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn\VSTA14_IS_ST_CS_Template.vstax不允许我通过集成服务目录执行该包(由于Zach遇到的消息)。但是,它似乎可以让我通过文件系统(使用SQL Agent)执行它。不确定该程序是否正常运行,将在软件包完成后对其进行更新。


指定软件包版本时,我注意到了同样的情况。我构建了项目,并在忘记更改SQL Server目标版本的过程中复制了向导。我收到一个错误消息,即目标版本太高。当我使用更正的目标版本进行重建时,尽管XML显示了更正的目标版本,我仍然遇到相同的错误
Zach Smith

Answers:


5

我相信我有同样的问题,这是解决我的问题的解决方法。

细节优先:

  • 我有SQL Server 2016(13.0.4411.0)
  • SSISDB具有架构版本(13.0.1601.5)
  • 我正在使用在Visual Studio中创建的集成服务包
  • 脚本组件(声明为2015 C#)的路径为:C:\ Program Files(x86)\ Microsoft SQL Server \ 130 \ DTS \ Binn \ VSTA14_IS_ST_CS_Template.vstax

如果我通过SSMS部署到目录,则不会让我通过集成服务目录执行软件包(由于Zach遇到的消息-不支持15.0版)。

解决方法:

如果我通过Visual Studio将程序包部署到所需实例上的“ Integration Services Catalog”,则此消息消失并且项目成功运行。这不是理想的,因为我们应该能够通过SSMS进行部署,但是这意味着项目可以进行。


1
我很想知道为什么解决方法可行。
扎克·史密斯

4

我的DBA终于为我解决了这个问题,问题是我正在通过SSMS 2017进行部署而没有意识到。该错误消息使我误入歧途,但您的解决方法有助于导致失败。我想您可以尝试SSMS 2016,看看是否可行。我的DBA建议的另一种方法是使用命令行。像这样,突出显示130,因为这是2016年所需的版本:

"C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn\ISDeploymentWizard.exe" 
/Silent /ModelType:Project 
/SourcePath:"E:\ssis\Project Path\bin\Development\Project.ispac" 
/DestinationServer:"server01" 
/DestinationPath:"/SSISDB/Projects/Project"

我希望这有助于清除这一点。在找到您的解决方法并最终找到此解决方案之前,我花了很长时间进行研究。那谢谢啦!


“通过SSMS 2017部署而没有意识到”是什么意思?我使用VS 2017进行部署..有一个设置可让您定义目标SQL Server的版本。但是我发现那行不通
Zach Smith,

这对我有用。直接从SSDT进行部署是可行的,但我们无法进行远程部署,无法通过SSMS 2017进行部署,然后通过2016 ISDeploymentWizard.exe使用命令行选项确实可行。谢谢!
Clinemi

0

与其他类似,我最初使用SQL2017部署向导部署到SQL2014。这产生了运行时错误。当我使用SQL2014部署向导时,一切正常。


-1

我以为我会补充,因为我遇到了同样的错误。我正在运行VS 2017并部署到2016 SQL Server。我读了很多文章,然后意识到解决这个问题对我来说多么容易。VS 2017具有很好的向后兼容性。

这篇有关更改SSIS软件包版本以匹配目标服务器版本的文章帮助我解决了我的情况下的错误。


请注意,OP表示他尝试更改目标服务器,但这没有用。当然(如文章中所述),如果他使用了目标版本中不提供的功能,那么事情将无法进行。
RDFozz '18

是的-仅更改目标版本无效。但是,更改目标版本然后通过VS 2017进行本地部署确实可行-因此我怀疑VS 2017中的错误(至少在我问问题时)有关如何创建部署向导。(我假设由于这种方法有效,所以我没有使用不兼容的功能)
Zach Smith,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.