6

我正在测试我从 VS2005 项目升级到 VS2013(包部署模型)项目的 SSIS 包。这是一个非常简单的包,它只处理来自特定位置的文件并根据这些文件更新数据库,一旦完成,它会根据结果将文件移动到存档或非解析目录。而且我遇到了奇怪的错误,我找不到解决方案。

问题是我的包运行良好,它完全按照它应该做的事情(从文件中提取数据并插入到表中)。但此操作的一部分是将文件移动到存档(文件系统任务)。我收到此错误“说明:要在 SQL Server Data Tools 之外运行 SSIS 包,您必须安装将文件移动到集成服务存档或更高版本。

我在 2014 年将 VS2013 与 SSDT BI 一起使用,并且 SSIS Designer 版本与我的开发测试 VM(12.0.2000.8 x64 位)中的 dtexec 实用程序匹配。下面是 CLI 的输出。

Microsoft (R) SQL Server Execute Package Utility Version 12.0.2000.8 for 64-bit Copyright (C) Microsoft Corporation. All rights reserved.

Started: 10:45:58 AM Progress: 2016-02-11 10:45:59.20 Source: Truncate StagingTable Executing query "TRUNCATE TABLE StagingTable".: 100% complete End Progress Progress: 2016-02-11 10:45:59.25 Source: Insert into Staging Executing query "exec dbo.staging @xml_fileName,NULL,'C...".: 100 % complete End Progress Progress: 2016-02-11 10:45:59.25 Source: Move to MasterXML Executing query "exec dbo.insertXML".: 100% complete End Progress Error: 2016-02-11 10:45:59.25 Code: 0xC000F427 Source: Move File to Archive Description: To run a SSIS package outside of SQL Server Data Tools you must install Move File to Archive of Integration Services or higher. End Error Progress: 2016-02-11 10:45:59.30 Source: Execute SQL get_next_file Executing query "exec get_next_file".: 100% complete End Progress Progress: 2016-02-11 10:45:59.51 Source: Execute SQL notify_users Executing query "exec notify_users".: 100% complete End Progress DTExec: The package execution returned DTSER_SUCCESS (0). Started: 10:45:58 AM Finished: 10:45:59 AM Elapsed: 1.172 seconds

在最近的努力中,我在我试图运行这个包的同一台机器上安装了 SQL Server 2014 的 VS2013 和 SSDT BI。如果我使用 VS,包运行良好,但是一旦我尝试使用以下命令通过 CLI 运行这个包,它仍然会失败并显示相同的消息,

"C:\Program Files\Microsoft SQL Server\120\DTS\Binn\dtexec.exe" /f "C:\SSIS\Load_Files.dtsx" /ConfigFile "C:\SSIS\loadFiles_SSIS_Configuration.dtsconfig"

我确信它与 SSIS 在 VS2005 到 VS2013 中的工作方式有关,但只是不知道在哪里看。有什么建议么 ?

4

2 回答 2

9

只是为了给未来的访问者一些东西看,就我而言,问题是我在同一台机器上安装了两个不同版本的 SSIS。一个是 2005 年的,另一个是 2014 年的。奇怪的是,即使我在命令中明确指向新版本(如帖子后面部分所示),它总是使用旧版本。

一旦我有了只使用 SQL Server 2014 (& SSIS) 的干净系统,相同的包就可以毫无问题地运行。所以它出现了某种限制,它不允许在同一台机器上运行两个不同版本的 SSIS。

于 2016-09-18T03:54:38.003 回答
5

您需要安装 SQL Server 并确保选择集成服务。然后DTExec.exe从新的 SQL Server 安装文件夹运行。

就我而言,我安装了 SQL Server 2016 Standard Edition,并且DTExec.exe位于以下位置:

C:\Program Files\Microsoft SQL Server\130\DTS\Binn\DTExec.exe

因此,您的新命令文件(用于 SQL Server 2016)将如下所示:

"C:\Program Files\Microsoft SQL Server\130\DTS\Binn\dtexec.exe" /f "C:\SSIS\Load_Files.dtsx" /ConfigFile "C:\SSIS\loadFiles_SSIS_Configuration.dtsconfig
于 2016-07-19T17:11:23.900 回答