从Office 2007安装MS Outlook时,我安装了安装了MS Office 2010的PC。 在这台电脑上,代码如下:
Microsoft.Office.Interop.Outlook.Application myOutlook = new Microsoft.Office.Interop.Outlook.Application();
string theName = myOutlook.Name;
导致以下异常:
无法转换类型的COM对象 'Microsoft.Office.Interop.Outlook.ApplicationClass'到接口类型 'Microsoft.Office.Interop.Outlook._Application'。此操作失败 因为QueryInterface调用COM组件的接口 由于IID'{00063001-0000-0000-C000-000000000046}'失败了 以下错误:库未注册。 (HRESULT的例外情况: 0x8002801D(TYPE_E_LIBNOTREGISTERED))。
我删除了以下注册表项,上面的代码正常运行。运行Windows更新后,将再次插入以下条目,上面的代码再次引发异常。 HKEY_CLASSES_ROOT \类型库{00062FFF-0000-0000-C000-000000000046} \ 9.4
1)由于权限
,无法从应用程序中删除注册表项2)需要两个办公室版本
3)行“string theName = myOutlook.Name;”可以被任何引用变量myOutlook的行替换为具有完全相同的结果
4)相同的代码在安装了MS Office 2007的PC上完美运行,包括MS Outlook。
任何建议都将不胜感激。
答案 0 :(得分:0)
您可以使用后期绑定技术,这有助于避免此类异常。有关详细信息,请参阅Type.InvokeMember方法。
您是否在PC上安装了Office 2010的Click2Run版本?