我正在尝试从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数据工具
感谢您的帮助。
答案 0 :(得分:1)
我在这篇文章Using app.config with Interop Controls
中找到了解决方案简而言之:如果我的VB6 exes名为VB6.exe,我需要将文件VB6.exe与App.config文件放在同一目录下,但重命名为VB6.exe.config
答案 1 :(得分:0)
您调用该对象的版本比您尝试打开它的版本更旧/更新。
您需要在项目/参考文献中的应用程序中引用正确的版本对象。