我正在编写一个应用程序,它将使用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
提交
取消