【发布时间】:2013-07-16 13:26:15
【问题描述】:
我正在尝试使用 C# 以编程方式执行 SSIS 包。
Application app = new Application();
Package package = app.LoadPackage(pkgFullPath, null);
package.Execute();
我收到一条错误消息:
Error in Microsoft.SqlServer.Dts.Runtime.TaskHost/SSIS.Pipeline : To run a SSIS package outside of SQL Server Data Tools you must install Conditional Split of Integration Services or higher.
Error in Microsoft.SqlServer.Dts.Runtime.TaskHost/SSIS.Pipeline : To run a SSIS package outside of SQL Server Data Tools you must install Lookup of Integration Services or higher.
我在 Visual Studio 2010 中使用 SSIS,但在 VS 2012 中执行 nunit 测试中的 C# 代码(运行 .Net 4.0)
如果我在 VS 2010 的 SSIS 项目中使用调试启动它(按 F5),该程序包运行良好,但如果我尝试从命令行使用 dtexec 运行它,它会失败并出现相同的错误(在 32和 dtexec 的 64 位版本)。如果我使用 ctrl + F5(不调试)从 Visual Studio 内部启动它,它也会失败并出现相同的错误
我在网上找到了一些文章,表明它与 64 位和 32 位问题有关,但是在运行两个版本的 dtexec 时我看到了同样的错误。我使用的是 11.0.2100.60 版本的 dtexec,它与 VS 2010 中的 SQL Server Integration Services Designer 的版本相匹配。
如果我运行一个没有条件拆分和查找的简单包,我不会收到错误消息。我是否必须安装一些额外的东西才能在 Visual Studio 之外运行它?
有什么想法吗?
【问题讨论】:
-
您确定集成服务安装正确吗? BIDS 和 SSDT 将能够执行包。如果要使用 dtexec 或以编程方式运行它,则必须安装集成服务。检查系统上运行的服务。与您的方案一样,“SQL Server 集成服务”要么不存在,要么处于 STOPPED 模式。
-
包属性中,有没有试过调整Run64BitRuntime属性? reference
-
谢谢大家。我希望其中一些想法可能对其他有类似问题的人有所帮助。然而,我的项目最终走向了不同的方向,所以我不再设置环境来尝试新的解决方案。
标签: c# sql-server ssis