Исключение из HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED)C#

Место общения программистов C#
Ответить
Anonymous
 Исключение из HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED)

Сообщение Anonymous »

У меня есть компьютер с установленным MS Office 2010, а MS Outlook установлен из Office 2007.
На этом компьютере следующий код:

Код: Выделить всё

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\TypeLib{00062FFF-0000-0000-C000-000000000046}\9.4

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

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

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

4) Тот же код отлично работает на компьютерах с установленным MS Office 2007, включая MS Outlook.

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

Подробнее здесь: https://stackoverflow.com/questions/282 ... registered
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»