2015-02-02 7 views
1

у меня есть компьютер с MS Office 2010, установленной в то время как MS Outlook установлена ​​с Office 2007. На этом компьютере код ниже:Исключение из HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED)

Microsoft.Office.Interop.Outlook.Application myOutlook = new Microsoft.Office.Interop.Outlook.Application(); 
string theName = myOutlook.Name; 

результаты в ниже исключения :

Unable to cast COM object of type 'Microsoft.Office.Interop.Outlook.ApplicationClass' to interface type 'Microsoft.Office.Interop.Outlook._Application'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{00063001-0000-0000-C000-000000000046}' failed due to the following error: Library not registered. (Exception from HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED)).

Я удалил приведенную ниже запись в реестре, и приведенный выше код работал нормально. Как только будут выполняться обновления Windows, приведенная ниже запись снова вставлена, и приведенный выше код снова вызывает исключение. HKEY_CLASSES_ROOT \ TypeLib {00062FFF-0000-0000-C000-000000000046} \ 9.4

1) Запись в реестре не может быть удален из-за применения разрешений

2) необходимы два офиса версии

3) Строка «string theName = myOutlook.Name;» может быть заменена любой строкой, ссылающейся на переменную myOutlook с точно таким же результатом.

4) Тот же код отлично работает на ПК с установленной MS Office 2007, включая MS Outlook.

Любое предложение будет высоко оценено.

+0

Это библиотека типов для Outlook 2010. Конечно, удаление не принесет вам пользы, Office знает, как восстановить такой урон. Это никуда не денется, пока вы не выясните, как заставить Outlook 2007 сосуществовать с Office 2010. Как маловероятно, что это возможно, это не по теме. Используйте superuser.com –

+0

Удалив эту запись в реестре, вышеуказанный код работает нормально. Поскольку Outlook 2010 не установлен в системе, я надеялся найти способ избавиться от него. – Chris

ответ

0

Вы можете использовать тахнологию позднего связывания, которая может помочь избежать таких исключений. См. Метод Type.InvokeMember для получения дополнительной информации.

У вас есть версия Click2Run Office 2010, установленная на ПК?

+0

У меня нет версии Click2Run. – Chris

+0

Вы пытались использовать метод Type.InvokeMember для вызова методов и свойств? Работают ли они без исключения? –

Смежные вопросы