VS2017: класс не зарегистрирован, ошибка в режиме отладки, скомпилированный .exe работает - PullRequest
0 голосов
/ 22 марта 2019

У меня есть некоторые старые внешние 32-битные библиотеки примерно с 2005 или 2006 года, которые называются eDocEngineX / PDFToolkitX.Обе установки и регистрации выглядят нормально с помощью пакета MSI (или даже вручную через regsrv32 в System32 и / или SysWOW64: записи реестра, похоже, правильно размещены Windows).У меня нет проблем при запуске какого-либо программного обеспечения с использованием их из Windows 10.

Моя проблема в том, что я больше не могу отлаживать свое решение WinForms, используя их.Всякий раз, когда создается объект из одной из этих библиотек, он выдает следующее исключение:

System.Runtime.InteropServices.COMException: «Получение фабрики классов COM для компонента с CLSID {EDE601A4-FFD6-4B99-Ошибка BDB6-CB6C60B03BFD} из-за следующей ошибки: 80040154 Класс не зарегистрирован (Исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).. "

Когда я запускаю скомпилированный файл .exe вне VS, все работаеткак и предполагалось, без исключений, ошибок или чего-либо еще.Все функции этих библиотек работают без сбоев.

Так что, похоже, моя проблема существует только при использовании отладчика.Главный совет, который вы найдете в Интернете, - это установить для конфигурации Debug x86, чтобы 64-битная VS использовала 32-битные DLL.Я делал это для каждого отдельного проекта в этом решении и также проверял свойства сборки, но все равно получал ошибку при создании экземпляра одного из этих классов.

Перерегистрация и чтение компонентов в ссылках также не работали, поэтому я предполагаю, что в VS есть некоторые другие настройки, которые я пропускаю.

Использование режима Release (установка всего на x86 снова) приводит к тому, что мое программное обеспечение даже не запускается (хотя средства диагностики VS показывают фоновую активность).

Так скажите, пожалуйста: почему эти библиотеки работают не в режиме отладки, а в Windows?

Спасибо за помощь!

...