VS2017: ошибка класса не зарегистрирована в режиме отладки, скомпилированный файл exe работает

#c# #winforms #visual-studio-2017 #com

#c# #winforms #visual-studio-2017 #com

Вопрос:

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

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

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

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

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

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

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

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

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

Комментарии:

1. Вы пытались скопировать только файлы кода вашего решения ! в другую папку и повторить попытку там?

2. @SiyonDP Спасибо за вашу идею, попробовал, но это тоже не помогло… :-

3. Я бы настаивал на воссоздании проектов.

4. Теперь я запустил совершенно новый, пустой проект, добавил библиотеку, ничего не делаю, кроме создания экземпляра класса из него и получаю ту же ошибку, что и выше (пробуя все вышеупомянутые приемы, такие как настройка x86 …)

5. Можете ли вы попробовать на другом компьютере? Возможно, заклинивание реестра