Как исправить исключение, когда я вызываю новый Microsoft.Office.Interop.Word.Application () - PullRequest
0 голосов
/ 11 мая 2019

Когда я вызываю новый Microsoft.Office.Interop.Word.Application () для инициализации, произошла ошибка. Сообщение выглядит следующим образом:

Невозможно привести объект COM типа «Microsoft.Office.Interop.Word.ApplicationClass» к типу интерфейса «Microsoft.Office.Interop.Word._Application». Эта операция завершилась неудачно, поскольку вызов QueryInterface в компоненте COM для интерфейса с IID '{00020970-0000-0000-C000-000000000046}' не выполнен из-за следующей ошибки: Библиотека не зарегистрирована. (Исключение из HRESULT: 0x8002801D (TYPE_E_LIBNOTRurable)).

Некоторая помощь была получена после поиска в MSDN ( эта страница ). Но когда я проверил HKEY_CLASSES_ROOT \ Wow6432Node \ Interface {00020970-0000-0000-C000-000000000046} \ TypeLib , я обнаружил, что моя «Версия» - это 3.0 вместо 8.6, «(по умолчанию)» - {00020905- 0000-4B30-A977-D214852036FF} вместо {00020905-0000-0000-C000-000000000046}. А в HKEY_CLASSES_ROOT \ Wow6432Node \ TypeLib {00020905-0000-0000-C000-000000000046} должен быть только 1 подключ с именем 8,7 вместо 8,6.

Я пытался изменить версию в HKEY_CLASSES_ROOT \ Wow6432Node \ Interface {00020970-0000-0000-c000-000000000046} \ TypeLib на 8,7 и (по умолчанию) на {00020905-0000-0000-0000 -c000-000000000046}, но все равно не работает. Я также, согласно этой странице инструкции, попробуйте "Быстрое восстановление" и полностью переустановите Office. Как изменить ключи реестра, чтобы быть успешным?

Версия My Word - Professional 2019 («нажми и работай»).

Кроме того, Я уверен, что мой код правильный . Потому что я написал код на другом компьютере, где он отлично выполнялся.

Вот немного моего кода:

    Microsoft.Office.Interop.Word.Application wordApp;
    Microsoft.Office.Interop.Word.Document wordDoc;
    wordApp = new Microsoft.Office.Interop.Word.Application();
    wordApp.Visible = visible;
    Object Nothing = Missing.Value;
    wordDoc = wordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);
...