2010-06-30 151 views
1

我們有一個程序集通過COM Interop由VB6可執行程序使用。此程序集使用其他.NET程序集(不適用於COM)。我們爲我們的VB6應用程序定義了一個.manifest,以便我們可以在不註冊的情況下使用.NET程序集。我們還爲我們的VB6應用程序定義了一個.config文件,並使用探測設置查看程序集的子目錄(「bin」)。使用註冊探測.NET程序集免費的COM/.NET互操作程序

如果我們把所有的.NET程序集在指定的subdiretory(「BIN」),我們的應用程序成功啓動,我們可以使用它,直到互操作的組裝調用其他組件的一些代碼。然後我們得到一個運行時錯誤'429':ActiveX組件不能創建對象。

當我們放下config文件,並把所有文件在同一目錄中,應用程序正常工作。

是否有可能使用探測用於由VB6的可執行程序使用.NET程序集? 有沒有辦法建立正確的探測,使其他組件成功定位?

的.config

<configuration> 
    <runtime> 
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <probing privatePath="bin"/> 
     </assemblyBinding> 
    </runtime> 
</configuration> 

回答

1

嗯,看起來像你的config文件不能正常工作。當您嘗試從VB6 IDE調試VB6應用程序時,可能會發生這種情況,CLR將查找.config文件的錯誤目錄。您需要排除故障的最終工具是fuslogvw.exe,它顯示了CLR在何處查找組件。

+0

使用探測找到互操作程序集,但相關程序集未解析。我會試一試fuslogvw.exe。 – Jehof 2010-07-01 05:43:53