我刚刚更新了从 Powerpoint 中的 VBA 调用的 dll。所有开发都很顺利,但是当我尝试在另一台用户机器上进行部署时,我遇到了一个我不知道如何调试的问题。
发生的情况是,当在 VBA 中创建 .Net 对象时,返回的引用指向错误的对象,因此下一行因找不到方法而失败。
Dim myObj As Foo.Bar
Public Sub RefreshData()
//'instantiate object
Set myObj = New Foo.Bar
//'call a method
myObj.HelloWorld
最后一行因运行时错误“438”而失败,对象不支持此属性或方法,这是由于 myObj 的类型为“Wrong.Type”而不是“Foo.Bar”。
“Wrong.Type”也在程序集中,所以我认为类型库出了点问题,但我尝试过重新生成(使用 regasm /codebase /tlb MyLib.dll),但这并没有帮助。
我不知道如何进一步诊断。希望有人可以列出一些有关如何诊断此类问题的步骤?