#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. Можете ли вы попробовать на другом компьютере? Возможно, заклинивание реестра