我们正在从 SQL Server 2005 系统迁移现有系统。该系统的一个组件是使用 VS2005 创建的 SSIS 项目。
我们在一月份安装了 SQL Server 2016 标准版。数据库数据文件位于 E: 驱动器上。
我们在一月份安装了 Visual Studio 2017,但当时没有使用它。
由于在本地运行 VS2019 并使用 VPN 访问网络时文件访问出现问题,我们最近在 db 服务器上安装了 Visual Studio 2019。
我们刚刚从 SQL Server 安装程序安装了 SSIS,意识到我们缺少该组件。
作为所有这些安装的结果,dtinstall.exe 和 dtexec.exe 位于以下文件夹中:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\SSIS\140\Binn
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\SSIS\150\Binn
E:\Program Files\Microsoft SQL Server\130\DTS\Binn
E:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn
E:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn
E:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn
E:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\CommonExtensions\Microsoft\SSIS\150\Binn
dtexecui.exe 仅在以下文件夹中找到:
E:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\CommonExtensions\Microsoft\SSIS\150\Binn
这两个 Visual Studio 2019 包是在服务器上的 C: 驱动器中开发的。它们在 VS 中正确编译和执行。
每个包都有 3 个配置文件(用于测试、预览和生产场景)。
由于安装部署实用程序时发现的兼容性问题,将 2 个包的 TargetServerVersion 配置为“SQL Server 2016”。
使用传统包部署模型创建了部署实用程序。
将部署实用程序文件从 C:...\Deployment 文件夹复制到服务器上 F: 驱动器上的文件夹。
Ran dtinstall.exe 在服务器上安装软件包。它在数据库数据文件所在的同一驱动器上创建了文件:
E:\Program Files (x86)\Microsoft SQL Server\130\DTS\Packages\Web 站点同步 SSIS 项目。
使用 dtexecui.exe 执行包,如上所述,只能在 \150\Binn 文件夹中找到。
这是 dtexecui 生成的 DTexec.exe 命令行:
/FILE "\"E:\Program Files (x86)\Microsoft SQL Server\130\DTS\Packages\Web Site Synch SSIS Project\Products Upload.dtsx\"" /DECRYPT /CONFIGFILE "\"E:\Program Files ( x86)\Microsoft SQL Server\130\DTS\Packages\Web Site Synch SSIS Project\Test Products.dtsConfig\"" /CHECKPOINTING OFF /REPORTING EW
执行时(从 dtexecui 中),它在最后一步中给出错误,该步骤执行 WZZIP.exe 以压缩在前面步骤中创建的平面文件。
错误消息说:“错误:要在 SQL Server Data Tools 之外运行 SSIS 包,您必须安装标准版的集成服务或更高版本。”
我并没有真正理解这条信息:我们确实有 SQL Server 标准版。我假设为此的 SQL Server 安装程序将安装集成服务的标准版。
我研究了这个错误,发现它通常是由于包版本和工具版本之间的不兼容造成的,但是我不知道如何在我的场景中解决这个问题。dtexecui 错误消息没有给出任何提示。