2010-06-30 108 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