VB(A)COM-DLL尝试实例NET-DLL对象时出错

时间:2012-03-27 12:59:52

标签: vb.net excel vba dll com

这是我的挑战......

EXCEL-VBA打开一个COM-DLL,它在一个地方 - 指另一个NET-DLL中的一个类。当COM-DLL尝试从类(在.NET-DLL中)初始化对象时,我收到方法get_ContentTypeProperties没有实现的错误。

error message "method [...] has no implementation"

我从未创建方法get_ContentTypeProperties,也不是我正在使用的界面的一部分。

当通过另一个DLL访问COM-DLL时,要解决方法EXCEL-VBA,它可以正常工作。 有什么想法吗?

UPDATE :使用与实现_Worksheet接口的NET-Dll不同的类(不像原始问题中的_Workbook接口)带来相同的错误消息,但至少我发现“没有实现“方法(PrintOutEx)作为Microsoft.Office.Tools.Excel命名空间的工作表接口的一部分。 Visual Studio使用此接口,我正在创建我的DLL。但仍然......我的.NET-DLL正在Microsoft.Office.Interop.Excel命名空间中实现_Worksheet-Interface。 为什么来自界面的方法报失了,我没有实现?

更新
1.)根据Process Monitor Results 我看到正确的DLL被解决并且GAC中没有加载DLL的干扰版本,例如
2.)我 - 以防万一 - 使Excel引用.NET-Framework 2.xxx,所有涉及的DLL都基于......同样的错误:(

1 个答案:

答案 0 :(得分:0)

问题是我正在使用的MS接口。我删除了接口实现,它的工作原理。似乎接口不向下兼容。

使用例如_Worksheet基于Microsoft Excel 11.0对象库的接口(Office 2003的Microsoft.Office.Interop.Excel)在Office 2007或2010中引发运行时错误,因为接口已更改。在我的情况下,报告了一种丢失的方法。即使没有初始化实现类,也会发生错误,因为实现接口成员是必需的。

我不确定何时检查是否所有接口成员都已实现。似乎是输入-interface contains-namespace的那一刻。