使用VS2015 SQL Server数据工具v14部署时,SQL Server 2016 SSIS包失败

时间:2017-09-28 21:23:36

标签: sql-server visual-studio-2015 ssis sql-server-2016 sql-server-data-tools

Visual Studio 2015 Update 3 14.0.25341.01

SQL Server数据工具14.0.61707.300

SQL Server 2016 13.0.4435.0

我最近在VS2015中收到一条消息,提供了SQL Server数据工具的更新。我决定下载并安装它,现在我部署到SQL 2016的软件包不再有效。

在安装更新之前,我不知道我的SQL Server数据工具版本是什么,但我知道在我的SSIS项目中,我现在看到SQL 2017的TargetServerVersion选项(以前只用于SQL 2016)

我确认我的项目(我用于所有SSIS包的项目,并且我们已经部署了SQL 2016)仍然设置为TargetServerVersion SQL 2016.项目设置为项目部署模式,我总是部署打开一个包,然后单击File - >将filename.dtsx的副本保存为...然后再部署到目标SQL。在升级SQL Server数据工具之外,我们的环境没有任何变化。

这是我尝试运行程序包时收到的错误:

Executed as user: DOMAIN\ProxySvc. 
Microsoft (R) SQL Server Execute Package Utility
Version 13.0.1601.5 for 64-bit
Copyright (C) 2016 Microsoft. All rights reserved.
Started:  3:32:33 PM
Error: 2017-09-28 15:32:33.37
Code: 0xC0010018
Source: Package_Name
Description: Error loading value "<DTS:ConnectionManagers xmlns:DTS="www.microsoft.com/SqlServer/Dts"><DTS:ConnectionManager DTS:refId="Package.ConnectionManagers[SERVER A]"  DTS:CreationName="OLEDB" DTS:DTSID="{E5D397C2-477A-4E04-B930-613DDE14A054}" DTS:ObjectName="SERVER A"><DTS:ObjectData>" from node "DTS:ConnectionManagers".  
End Error
Could not load package "\Maintenance Plans\Package_Name" because of error 0xC0010014.  
Description: One or more error occurred. There should be more specific errors preceding this one that explains the details of the errors. This message is used as a return value from functions that encounter errors.
Source:
Started:  3:32:33 PM  Finished: 3:32:33 PM  Elapsed:  0.109 seconds.
The package could not be loaded.
The step failed.

如果我使用本地安装的SQL 2016 Dev Edition中的DtUtil部署它们,那么这些包将会起作用。例如:

"C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn\dtutil" /FILE "C:\filename.dtsx" /DestServer SERVERNAME/INSTANCE /Encrypt SQL;"Maintenance Plans\Package_Name";2;PKG_PA$$

还有其他人对此有疑问吗?我不能成为唯一一个以这种方式部署软件包的人,当在VS2015和SQL Server数据工具中部署软件包时,它突然停止工作。

我还开了一个Connect for this issue

编辑:我尝试使用SQL Server数据工具预览版的Visual Studio 2017。我得到同样的问题。包部署很好,但包不会运行。

编辑2:如果我创建一个空包,它会成功运行(不执行任何操作)。如果我创建一个只包含单个OLEDB连接的空包,它将失败并显示上面的消息。它也会因为包含空包并且只有一个ADO.NET连接的相同消息而失败。

编辑3:我部署了两个软件包。一个使用SSDT(无法在服务器上运行,上面有错误),另一个使用在服务器上执行的DTUTIL。除了将它们复制到服务器之外,这些包完全相同。然后我使用DTUTIL将包复制回我的机器并进行比较。在DTS:LastModifiedProductVersion版本差异之外,唯一的另一个变化是EncryptionMethod算法。使用SSDT部署的那个说:

<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"/>

使用DTUTIL部署的那个:

<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>

显然,Salt,IV和CipherValues是不同的,但我想知道在部署时SSDT应用的加密是否会导致问题。

1 个答案:

答案 0 :(得分:1)

我有同样的问题。为我解决了这个问题:http://microsoft-ssis.blogspot.com/2016/12/ devenv.exe.config文件中缺少程序集引用。如果您通过命令行或使用ISDeploymentWizard进行部署,那可能是您的问题。

相关问题