在Outlook 2010 Add in中,类未注册错误

本文关键字:注册 错误 Outlook 2010 Add in | 更新日期: 2023-09-27 18:01:53

我正在使用Visual Studio 2010创建Outlook 2010 Add In。我试着创建一个新的Outlook appointment来工作,我想我最终可以把它添加到日历中。

Microsoft.Office.Interop.Outlook.AppointmentItem tempApp = new Microsoft.Office.Interop.Outlook.AppointmentItem();

但是当AddIn运行并尝试创建AppointmentItem对象时,我在上面的行中得到这个错误。

System.Runtime.InteropServices.COMException was unhandled by user code
      Message=Retrieving the COM class factory for component with CLSID {00061030-0000-0000-C000-000000000046} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
      Source=mscorlib
      ErrorCode=-2147221164

我能做什么来"注册类"?我猜它在某种程度上与Microsoft.Office.Interop.Outlook.dll有关。

在Outlook 2010 Add in中,类未注册错误

异常消息不是很有帮助,他们本可以用COM声明做得更好。这是设计的,类是不注册的。您必须使用Application.CreateItem()方法创建它的一个实例。

您是否安装了Outlook 2010 ?互操作程序集只是Outlook 2010的COM组件的。net包装器。该组件应该注册以使互操作工作。此注册通常由拥有该组件的应用程序执行,在本例中为Outlook。

您可以尝试通过regsvr32实用程序注册该组件,但您必须知道包含该组件的dll的名称。

使用"开始菜单'程序'MS Visual Studio xxxx'Microsoft Windows SDK Tools"中的OleView(现在称为"OLE-COM对象查看器")查看已注册的组件。

并检查x86/x64选项。例如,您可能注册了32位版本的组件和64位版本的应用程序,反之亦然。

http://www.msoutlook.info/question/461

对于我需要的所有Outlook互操作对象,我通常是这样做的:

    // In Global Properties
    public static Outlook.Application olook = new Outlook.Application();        // Outlook Application Object.
    // In Method 
    Outlook.AppointmentItem olookAppointment = (Outlook.AppointmentItem)olook.CreateItem(Outlook.OlItemType.olAppointmentItem);

与上述解决方案类似