2009-09-10 115 views

回答

0

发现了问题:

通过查看日志fuslogvw我了解到,OleViewer会在同一文件夹中OleViewer.exe它正在寻找装配匹配任何组件(!)。偶然我在我运行OleViewer的文件夹中有一个旧版本的程序集。所以我必须做的是将OleViewer.exe复制到我的程序集注册的文件夹中。奇怪而真实!

1

COM注册程序集的bin文件夹中是否存在依赖程序集?或者应该在GAC中的实际上不在GAC中的相关程序集?

您可能还能够使用/ codebase开关解决您的问题,该开关将添加一个指向您程序集位置的注册表项。

您可能还可以通过使用fuslogvw来查看当您的.NET程序集被绑定到OLE查看器时发生了什么。

+0

我的程序集包含一个工厂类(唯一可以看到COM的类)。根据是否安装Sharepoint 2003或Sharepoint 2007,工厂类会生成不同的通用接口实现。上面的答案让我觉得可能问题是通常情况下,安装SP2003或SP2007,这意味着我的程序集引用的SP程序集并不总是存在......这听起来像是一个可能的原因吗?感谢指针。 – Ries 2009-09-10 15:02:32

+0

是的,可能是这种情况,我不确定OLE Viewer是否会导致您的程序集并且它的相关程序集将被加载到它的进程空间下。通过指出确切的绑定失败,fuslogvw几乎肯定会告诉您您的想法是否正确。 – 2009-09-13 10:45:51