.NET互操作COM DLL在VB6调试器中的行为有所不同

Ahe*_*eho 1 .net vb6 com interop

我有一个.NET v2.0 Dll,它向COM公开了几个类.该程序集称为BLogic.DLL

我从传统的visual basic 6.0应用程序中调用这些类.我可以生成和EXE文件,如果我在与EXE相同的文件夹中有Blogic.dll,程序运行顺利.

但是,如果我尝试在VB6调试器中启动相同的程序,我得到一个:

   Automation Error    
   The system cannot find the file specified
Run Code Online (Sandbox Code Playgroud)

我假设当我在调试器中运行时,找不到PLogic.dll文件.我尝试将它放在System32文件夹中,和VB6.EXE文件相同的文件夹,但我仍然得到相同的错误.

其他可能有用的事实:

PLogic.dll不是强名称程序集.它取决于没有强烈签名的第三方引用,所以VS不允许我强烈签名.但是,第三方功能不是由VB6代码调用的,并且它不是ComVisible.

Han*_*ant 5

如果您没有将ComVisible .NET程序集放在GAC中,则必须在Regasm.exe中使用/ codebase选项