none
Регистрация класса COM RRS feed

  • Вопрос

  • Доброго времени суток.

    Переустанавливал ОС. Установил "Visual Studio Community 2017".

    При установке  "Visual Studio Community 2017" отметил опции:

    1. Разработка классических приложений .NET.

    2. Разработка классических приложений на С++.3. Разработка надстроек для Office и SharePoint.

    4. Запустил ранее созданный проект на "Visual Studio Community 2015". 

    5. Через обозреватель решений---> ссылки--->Добавить ссылку--->Сборки->Расширения--->Подключил ссылку на библиотеку "Microsoft.Office.Interop.Excel" (Версия 15.0). Путь: "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Visual Studio Tools for Office\PIA\Office15\Microsoft.Office.Interop.Excel.dll"".

    При выполнении проекта Windows Form возникла ошибка:

    System.Runtime.InteropServices.COMException
      HResult=0x80040154
      Сообщение = Не удалось получить фабрику класса COM для компонента с CLSID {00024500-0000-0000-C000-000000000046} из-за следующей ошибки: 80040154 Класс не зарегистрирован (Исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
      Источник = mscorlib

    Что не так я сделал при выборе опций когда устанавливал Studio?

    Почему класс COM оказался не зарегистрированным и как правильно в такой ситуации зарегистрировать класс?

    **************************************************************************************************

    После этого установил Microsoft Office 2013.  Подключил ссылку:

    Через обозреватель решений---> ссылки--->Добавить ссылку--->COM->Библиотеки типов---> Microsoft Excel 15.0 Object Library. В Этом случаи в обозревателе решений добавились три ссылки: 

    Microsoft.Office.Interop.Excel Путь:C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Excel\15.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll

    Office. Путь:C:\Windows\assembly\GAC_MSIL\Office\15.0.0.0__71e9bce111e9429c\Office.dll

    Microsoft.Vbe.Interop Путь: :\Windows\assembly\GAC_MSIL\Microsoft.Vbe.Interop\15.0.0.0__71e9bce111e9429c\Microsoft.Vbe.Interop.dll.

    Проект после этого запустился и работал без ошибок.



Ответы

  • Если приложений MS Office физически не было в системе, как обертка interop могла создать экземпляр класса? Обертка, поставляемая с Visual Studio, выполнять функции офисных приложений сама не в состоянии.

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    • Помечено в качестве ответа Y_VS 25 мая 2018 г. 13:26

Все ответы

  • Если приложений MS Office физически не было в системе, как обертка interop могла создать экземпляр класса? Обертка, поставляемая с Visual Studio, выполнять функции офисных приложений сама не в состоянии.

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    • Помечено в качестве ответа Y_VS 25 мая 2018 г. 13:26
  • Если приложений MS Office физически не было в системе, как обертка interop могла создать экземпляр класса? Обертка, поставляемая с Visual Studio, выполнять функции офисных приложений сама не в состоянии.

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!


    Спасибо за ответ.