为了账号安全,请及时绑定邮箱和手机立即绑定

从外部应用程序执行具有脚本组件的SSIS 2012程序包

从外部应用程序执行具有脚本组件的SSIS 2012程序包

C#
aluckdog 2019-11-04 13:07:39
我正在编写一个应用程序,它将使用Microsoft.SqlServer.ManagedDTS v 11.0程序集执行SSIS 2012程序包。我要执行的程序包是从SSDT-2012设计并成功执行的,并且具有处理无法正确传输的行的脚本组件。当我尝试运行我的应用程序时,我收到每个脚本组件的错误消息:SSIS.Pipeline:要在SQL Server数据工具之外运行SSIS包,必须安装Integration Services或更高版本的[脚本组件名称]。配置:使用以下app.config文件在Windows上为x86构建应用程序:<?xml version="1.0" encoding="utf-8" ?><configuration>    <startup useLegacyV2RuntimeActivationPolicy="true">        <supportedRuntime version="v4.0"/>        <supportedRuntime version="v2.0.50727"/>    </startup></configuration>唯一相关的代码是:using System;using System.Data;using System.Data.Common;using System.IO;using Microsoft.SqlServer.Dts.Runtime;class MyApp{    public void ExecutePackage()    {        //Assume I have all the variables I need like packageFile, packageName,         //srcConnectionString, destConnectionString and eventListener etc.        Package pkg;        Application app;        DTSExecResults pkgResults;        app = new Application();        pkg = app.LoadPackage(packageFile, eventListener);        pkg.Variables["SrcConnectionString"].Value = srcConnectionString;        pkg.Variables["DestConnectionString"].Value = destConnectionString;        if (null != srcAssembly || null != destAssembly)        {            foreach (ConnectionManager connection in pkg.Connections)            {                if (null != srcAssembly && connection.Name.Contains("Source"))                {                    connection.SetQualifier(srcAssembly);                }                else if (null != destAssembly && connection.Name.Contains("Destination"))                {                    connection.SetQualifier(destAssembly);                }            }        }        pkgResults = pkg.Execute(null, null, eventListener, null, null);    } }有任何想法吗?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 450 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信