无法从vb6

时间:2016-08-24 18:57:18

标签: ssis vb6

我正在尝试从vb6应用程序执行一个简单的SSIS包。 我可以从c#执行相同的包。

这是我在vb6中的代码:

  pkgLocation = "c:\Package.dtsx"
  Set dtsApp = New Application


  Set package = dtsApp.LoadPackage(pkgLocation, True, Nothing)
  Set pkgContainer = package

  pkgResults = package.Execute

  If (pkgResults = 0) Then
   MsgBox "Success"
  Else
    MsgBox "Fail"
  End If

在我的日志文件中,我看到此错误: 任务上的Execute方法返回错误代码0x80131621(混合模式程序集是针对运行时的版本'v2.0.50727'构建的,如果没有其他配置信息,则无法在4.0运行时加载。)。 Execute方法必须成功,并使用“out”参数指示结果。

我的c#程序我必须添加一个App.config文件来解决同样的错误:

<?xml version="1.0"?>
  <configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
</configuration>

但是我如何从vb6应用程序中做同样的事情?

编辑1:

在我的vb6项目中,我正在使用此引用:

C:\ Program Files(x86)\ Microsoft SQL Server \ 120 \ DTS \ Binn \ DTS.DLL - Microsoft DTS Runtime 1.0 C:\ Program Files(x86)\ Microsoft SQL Server \ 120 \ DTS \ Binn \ MsDtsSrvrUtil.dll - Dts Server 9.0类型库

SSIS包是用于:Visual Studio 2013的SQL Server数据工具

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

我在这篇文章Using app.config with Interop Controls

中找到了解决方案

简而言之:如果我的VB6 exes名为VB6.exe,我需要将文件VB6.exe与App.config文件放在同一目录下,但重命名为VB6.exe.config

答案 1 :(得分:0)

您调用该对象的版本比您尝试打开它的版本更旧/更新。

您需要在项目/参考文献中的应用程序中引用正确的版本对象。