我们有一个由 VB6 可执行文件通过 COM 互操作使用的程序集。此程序集使用其他 .NET 程序集(不适用于 COM)。我们为我们的 VB6 应用程序定义了一个 .manifest,这样我们就可以在不注册的情况下使用 .NET 程序集。我们还为我们的 VB6 应用程序定义了一个带有探测设置的 .config,以在子目录(“bin”)中查找程序集。
如果我们将所有 .NET 程序集放在指定的子目录(“bin”)中,我们的应用程序将成功启动,并且我们可以使用它,直到 Interop-Assembly 调用其他程序集的某些代码。然后我们得到一个运行时错误“429”:ActiveX 组件无法创建对象。
当我们删除 .config 文件并将所有文件放在同一目录中时,应用程序按预期工作。
是否可以对 VB6 可执行文件使用的 .NET 程序集进行探测?有没有办法正确设置探测,以便成功定位其他组件?
.config
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="bin"/>
</assemblyBinding>
</runtime>
</configuration>