Ошибка открытия приложения Office: Microsoft.Office.Interop.Excel / Microsoft.Office.Interop.Word - PullRequest
0 голосов
/ 13 апреля 2020

Я надеюсь, что кто-то может немного рассказать и / или привести пример.

При попытке создать экземпляр приложения Excel или Word возникла ошибка. Приложение, над которым я работаю, использует сборки взаимодействия для управления Excel и Word. В обоих случаях мне это удавалось в прошлом, проблемы / ошибки начались только недавно. Я заметил несколько постов о похожих сообщениях об ошибках и просматривал их, но ни один из них не касался аналогичной проблемы и не предоставлял соответствующую информацию.

При попытке создать экземпляр Excel полученная ошибка похожа на следующую :

{System.Runtime.InteropServices.COMException (0x80080005): Не удалось получить фабрику классов COM для компонента с CLSID {00024500-0000-0000-C000-000000000046} из-за следующей ошибки: 80080005 Ошибка выполнения сервера (исключение из HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)). в System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject (RuntimeType objectType) в System.Runtime.Remoting.Activation.ActivationServices.CreateInstance (RuntimeType serverType) в System.Runtime.Rutification.TypeTyTimes. , булева bNewObj) при System.RuntimeTypeHandle.CreateInstance (типа RuntimeType, Boolean, Boolean publicOnly NOCHECK, Boolean & canBeCached, RuntimeMethodHandleInternal & CTOR, Boolean & bNeedSecurityCheck) в System.RuntimeType.CreateInstanceSlow (Boolean publicOnly, булевой skipCheckThis, булевой fillCache, StackCrawlMark & ​​stackMark) в системе .RuntimeType.CreateInstanceDefaultCtor (логическое значение publicOnly, логическое значение skipCheckThis, логическое значение fillCache, StackCrawlMark & ​​stackMark)
в System.Activator.CreateInstance (тип-тип, логический тип NonPubli c) * Тип (в типе). 1010 *

Я сталкиваюсь с подобной ошибкой при попытке создать экземпляр Word. Опять же, мой код делал это без проблем, до недавнего времени.

Я думаю, это могло начаться, возможно, с недавних обновлений экземпляра Office на моей машине для разработки.

ссылки для обеих сборок Interop (Microsoft.Office.Interop.Excel и Microsoft.Office.Interop.Word), связанных с моим проектом, имеют Embed Interop Types, установленный на TRUE)

Если я правильно интерпретирую текст ошибки, код ищет библиотеку типов / class id (т.е. {00024500-0000-0000-C000-000000000046}) находится в реестре текущего компьютера и не может его найти. Я поискал в реестре папку \HKEY_CLASSES_ROOT\TypeLib и не увидел ее. Мой вопрос будет, почему он ищет этот конкретный идентификатор? Конечно, я могу быть полностью в левом поле на этой линии рассуждений.

Поскольку я вижу подобные эффекты в обоих контекстах, я должен верить, что причина проблемы здесь на уровне Office, а не либо приложение. Насколько я знаю, в код или ссылки на сборки Interop в проекте не было внесено никаких изменений.

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

Я использую VS 2017 (64-разрядная версия) на Windows 10.

...