Получение фабрики классов COM для компонентов с CLSID - класс не зарегистрирован
Я пытаюсь запустить приложение Windows (winForm) на ПК (ОС Win7, 64 бит), но оно показывает мне эту ошибку или исключение:
Получение фабрики классов COM для компонентов с CLSID {00853A19-BD51-419B-9269-2DABE57EB61f} не удалось из-за следующей ошибки: 80040154 Класс не зарегистрирован (исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
Я погуглил и обнаружил, что мне нужно выполнить сборку для x86 (хотя текущее окно - 64-разрядное). Я сделал это, но получил ту же ошибку. После этого я пытаюсь установить зависимость zkeeper, но получаю эту ошибку:
Модуль D:\TheSDK\zkemkeeper.dll"может быть несовместим с используемой вами версией Windows. Проверьте, совместим ли модуль с версией regsvr32.exe x86 или x64.
Вот командный файл (установщик Dependency SDK):
cd /d %~dp0
if /i "%PROCESSOR_IDENTIFIER:~0,3%"=="X86" (
echo system is x86
copy .\*.dll %windir%\system32\
regsvr32 %windir%\system32\zkemkeeper.dll
) else (
echo system is x64
copy .\*.dll %windir%\SysWOW64\
regsvr32 %windir%\SysWOW64\zkemkeeper.dll
)
Обновление: даже я пытаюсь запустить и установить вручную оба regsvr
из system32 и 64 и все еще получаю ту же ошибку.
2 ответа
Я не знаю, в чем была проблема, но, возможно, это было связано с.Net framework. После установки пакета разработчика.Net Framework 4.5.2. Я удалил свой SDK и снова зарегистрировал все зависимости (DLL). Тогда это сработало.
Эта ошибка возникает из-за того, что не удалось зарегистрировать com dll Zmkeeper.dll. В некоторых случаях может потребоваться регистрация вместе с файлом typeLib. Кроме того, возможно, может быть выполнено какое-то настраиваемое действие установщика, если оно проходит через установщик. Похоже, установка демо-версии решила проблему. проверить эту проблему, упомянутую здесь