2016-08-24 162 views
3

我想從vb6應用程序執行一個簡單的SSIS包。 我可以從c#執行相同的包。不能從vb6執行SSIS包

這是我在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 

在我的日誌文件,我看到這個錯誤: 將執行的任務的方法返回錯誤代碼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 - 微軟DTS運行1.0 C:\ Program Files文件(x86)的\ Microsoft SQL Server的\ 120 \ DTS \ BINN \ MsDtsSrvrUtil.dll - DTS服務器9.0類型庫

SSIS包用做:SQL Server數據工具爲Visual Studio 2013

感謝您的幫助。

回答

1

我發現這個職位Using app.config with Interop Controls

在短期解決辦法:如果我的exe文件VB6 ES稱爲VB6.EXE,我需要把在同一目錄下的文件VB6.EXE App.config文件,但改名VB6.exe.config

+0

如下所示,認爲它可能是一個應用程序路徑錯誤。現在工作正常嗎? –

0

您調用該對象的版本比您試圖打開它的版本更舊/更新。

您需要在項目/引用下的應用程序中引用正確的版本對象。

+0

你好安德烈,我編輯帖子,以顯示什麼是我使用的參考。我不知道什麼是正確的參考。 SSIS包是用Sql Server Data Tools for Visual Studio 2013製作的。 – Gringo

+0

看看這個鏈接,有點過時,只是在做參考時改成.Net 4.0。當然,這將解決... https://msdn.microsoft.com/en-us/library/aa719110(v=vs.71).aspx –

+0

我試圖用你給我的鏈接,仍然不工作 – Gringo