Получение фабрики классов 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. Кроме того, возможно, может быть выполнено какое-то настраиваемое действие установщика, если оно проходит через установщик. Похоже, установка демо-версии решила проблему. проверить эту проблему, упомянутую здесь

Другие вопросы по тегам