代码之家  ›  专栏  ›  技术社区  ›  RaYell

vsto外接程序中的无效castexception

  •  0
  • RaYell  · 技术社区  · 15 年前

    我正在开发的vsto outlook外接程序遇到了一些奇怪的问题。它在许多机器上都可以正常工作,但在一台机器上却抛出了一个无效的castexception,并且找不到原因。我已经检查过所有的先决条件都安装在这台机器上(安装程序自己做的,但我也手工检查过),而且所有的东西都和其他机器上的完全一样。

    引发异常的代码是:

    this.Application.Session.
        GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar).Items.
        OfType<Outlook.AppointmentItem>();
    

    例外情况是:

    无法将“microsoft.office.interop.outlook.applicationClass”类型的COM对象强制转换为接口类型“microsoft.office.interop.outlook.\u application”。此操作失败,因为IID为“00063001-0000-0000-C000-00000000000000046”的接口的COM组件上的QueryInterface调用由于以下错误而失败:库未注册。(来自hresult的异常:0x8002801d(type_e_libnotregistered))。

    有人知道可能是什么问题吗?

    1 回复  |  直到 15 年前
        1
  •  0
  •   Deepak N    15 年前

    确保安装了VSTO运行时和正确的PIA版本(OL2003/OL2007)。有时可能是CAS策略问题。 http://msdn.microsoft.com/en-us/library/zdc263t0.aspx