如果尝试以编程方式部署,SSIS包不起作用

时间:2016-12-20 16:21:42

标签: visual-studio-2015 ssis

我在VS2015中开发了一个简单的SSIS包。而不是将其部署到SQL Server进行调度,我现在将有一个桌面应用程序,可以手动关闭作业。

如果我转到本地计算机上的位置并双击Package.dtsx文件,它将打开一个执行包实用程序。如果我点击执行它会完全运行包,所有步骤都会成功。

当我创建一个桌面应用程序并从它们执行它时(这是关于如何手动部署本地SSIS包的Microsoft代码):

            string pkgLocation;
            Package pkg;
            Microsoft.SqlServer.Dts.Runtime.Application app;
            DTSExecResult pkgResults;
            pkgLocation = @"C:\SSIS\TestSSIS\Package.dtsx";
            app = new Microsoft.SqlServer.Dts.Runtime.Application();
            pkg = app.LoadPackage(pkgLocation, null);
            pkgResults = pkg.Execute();

            if (pkgResults.ToString() != "Success")
            {
                if (pkg.Errors.Count > 0)

                {
                    string errors = "";
                    int errorID = 0;

                    foreach (DtsError error in pkg.Errors)
                    {
                        errors = errors + error.Description.ToString();
                        errorID++;
                    }
                    MessageBox.Show(errors + "Total Error Count:" + errorID.ToString() );
                }

我收到一些错误消息: 对于流程中的每个步骤,我都会收到此错误:

  

要在SQL Server数据工具之外运行SSIS包,必须安装Integration Services或更高版本的[步骤名称]。

该特定错误没有任何意义。我已经注意到它是一个MS Bug,错误是错误的,但到目前为止我的情况都没有应用解决方案。我们如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我发现了这个问题。在这里发布,这有助于其他人。事实证明,错误本身可以承担很多含义。在我的情况下

ASSEMBLY: Microsoft.SqlServer.Dts.Runtime 

它有2个版本,12.0和13.0。我无意中没有添加正确的程序集版本,因此应用程序看起来我没有安装SSIS。

荣幸地提到@Ferdipux指出程序集可能会导致这种情况并研究MSErrorList。