从C#引用VBA程序集的运行时错误

我有一个C#.NET 3.5项目,遗憾的是它依赖于几个VB6 ActiveX控件。

到目前为止,我已经能够愉快地访问ActiveX控件中定义的数据容器和方法,只需添加对项目中控件的引用并正常引用它们即可。

然而,当我不得不调用一个返回VBA.Collection的方法时,我遇到了麻烦。

我的代码将编译没有问题,但在运行时我收到以下错误:

无法加载文件或程序集“Interop.VBA,Version = 6.0.0.0,Culture = neutral,PublicKeyToken = null”或其依赖项之一。 该系统找不到指定的文件。

我在项目中引用了Interop.VBA(版本6.0.0.0)和Interop.VBRUN(版本6.0.0.0),有什么想法吗?

我不能给出具体的代码,它包含在NDA中。

但是,这里是来自对象浏览器的示例代码,其名称已更改为保护不那么无辜;)

我可以从我的代码中引用以下属性和方法:

ReturnConstants GoodMethod(); string prop1 ReturnConstants prop2 

如果我尝试可以调用此方法,我在运行时收到上面的错误消息:

 Collection BadMethod(); 

因此调用返回导致问题的VBA.Collection的方法。 这些是我无法控制的第三方控件,它们不会在.net中重写

编辑:出于兴趣,我去了VS2010尝试了一个快速的虚拟项目,并按预期工作完美,所以看起来这可能是VS2012的一个问题。 我看过一些post暗示2012年没有正确创建VBA的interops,所以我会去看看我能在那里找到什么……

感谢@Jeremy Thompson让我走上了正确的轨道,运行进程监视器向我显示我的应用程序无法找到interop.VBA.dll文件,一旦修复了一切正常工作。 不知道为什么这在2010年而不是2012年开箱即用,但很高兴有一个解决方案