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