【问题标题】:Cannot execute SSIS package from vb6无法从 vb6 执行 SSIS 包
【发布时间】:2017-01-01 01:07:45
【问题描述】:

我正在尝试从 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 运行时 1.0 C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\MsDtsSrvrUtil.dll - Dts Server 9.0 类型库

SSIS 包是用 Sql Server Data Tools for Visual Studio 2013 制作的

感谢您的帮助。

【问题讨论】:

    标签: ssis vb6


    【解决方案1】:

    我在这篇帖子Using app.config with Interop Controls找到了解决方案

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

    【讨论】:

    • 如下,以为可能是app路径错误。现在一切正常吗?
    【解决方案2】:

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

    您需要在项目/引用下的应用中引用正确的版本对象。

    【讨论】:

    • 你好安德烈,我编辑帖子以显示我正在使用的参考资料。我不知道什么是正确的参考。 SSIS 包是使用 Sql Server Data Tools for Visual Studio 2013 制作的。
    • 看看这个链接,有点过时了,做参考的时候改成.Net 4.0就好了。当然这会解决...msdn.microsoft.com/en-us/library/aa719110(v=vs.71).aspx
    • 我正在尝试使用您给我的链接,但仍然无法正常工作
    • 嗯,将不得不玩这个...是否可以将文件 Package.dtsx 添加到您的应用程序文件夹,然后调用 App.Path 方法来覆盖可能的权限问题 - 设置包= dtsApp.LoadPackage(App.Path, True, Nothing)。不要认为这是这里的问题,很快就会恢复。
    • 嗨安德烈。请参阅我提出的答案。感谢您的宝贵时间
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-25
    相关资源
    最近更新 更多