【问题标题】:Error: To run a SSIS Package outside SQL Server Data Tools you must install Standard Edition of Integration Services or higher错误:要在 SQL Server Data Tools 之外运行 SSIS 包,您必须安装标准版的 Integration Services 或更高版本
【发布时间】:2020-04-29 19:04:38
【问题描述】:

我们正在从 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: 驱动器上的文件夹。

运行 dtinstall.exe 在服务器上安装软件包。它在数据库数据文件所在的同一驱动器上创建了文件:

E:\Program Files (x86)\Microsoft SQL Server\130\DTS\Packages\网站同步 SSIS 项目。

使用 dtexecui.exe 执行包,如上所述,它只能在 \150\Binn 文件夹中找到。

这里是 dtexecui 生成的 DTexec.exe 命令行:

/FILE "\"E:\Program Files (x86)\Microsoft SQL Server\130\DTS\Packages\网站同步 SSIS 项目\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 以压缩在前面步骤中创建的平面文件。

dtexecui error in WinZip step

错误消息显示:“错误:要在 SQL Server Data Tools 之外运行 SSIS 包,您必须安装集成服务标准版或更高版本。”

我并没有真正理解这条信息:我们确实有 SQL Server 标准版。我假设为此的 SQL Server 安装程序将安装集成服务的标准版。

我研究了这个错误,发现它通常是由于package版本和tool版本不兼容,但我不知道如何在我的场景中解决这个问题。 dtexecui 错误消息没有给出任何提示。

【问题讨论】:

  • 嗨,LindaK,欢迎来到 SO!在 StackOverflow,发布问题然后提交并接受您自己的答案是完全可以接受的。我鼓励您修改上面的“问题”帖子,以仅包含有关实际问题的信息。然后在下面你应该看到一个“你的答案”提交表格。将与解决方案相关的所有信息放在那里,然后点击“发布您的答案”。然后在发布后,您可以选择“接受此答案”。这将向 StackOverflow 上的其他人显示您的问题已经有了解决方案。它也将对未来的访客更有利。
  • 谢谢 digital.aaron。我按照你的鼓励做了。

标签: ssis visual-studio-2019 sql-server-2016 dtexec


【解决方案1】:

在仔细记录我的问题以便在此处发布的过程中,我意识到问题可能是因为我使用的是 \150\ 版本的 dtexecui.exe,它可能正在运行 \150\ 版本的 dtexec.exe ,而那个就是不兼容。

我复制了 dtexecui 生成的命令字符串,然后使用 dtexec 的 \130\ 版本运行它。它运行没有错误。

这是命令提示符会话:

E:>cd E:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn

E:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn>dtexec /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\"" /检查点关闭/报告电子战

Microsoft (R) SQL Server 执行包实用程序

32 位版本 13.0.5026.0

版权 (C) 2016 Microsoft。保留所有权利。

输入解密密码:

开始时间:下午 2:44:57

警告:2020-04-29 14:45:01.31

代码:0x80049304

来源:单元类型 SSIS.Pipeline

描述:警告:无法打开全局共享内存以与性能 DLL 进行通信;数据流性能计数器不可用。要解决此问题,请以管理员身份或在系统控制台上运行此包。

结束警告

DTExec:包执行返回 DTSER_SUCCESS (0)。

开始时间:下午 2:44:57

完成:下午 2:45:06

经过:9.344 秒

E:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn>

现在我知道在我的调用例程(存储过程和其他应用程序)中,我需要调用这个特定版本的 dtexec.exe。

我真的希望这对某人有所帮助!

【讨论】:

    猜你喜欢
    • 2023-03-11
    • 2020-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    相关资源
    最近更新 更多