Получение фабрики классов 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, но все равно получаю ту же ошибку.


person Muhammad Faizan Khan    schedule 30.09.2019    source источник
comment
Согласно blogs.msdn.microsoft.com/deva/2010/09/27/ вам необходимо использовать правильную версию regsvr32   -  person BugFinder    schedule 30.09.2019
comment
Этот файл .bat неверен, он должен использовать c: \ windows \ syswow64 \ regsvr32.exe. Кстати, довольно страшно, сбрасывать так много файлов в каталог операционной системы - это вредно для здоровья. Для этого есть пакет nuget, он может нанести меньше вреда.   -  person Hans Passant    schedule 30.09.2019
comment
@BugFinder Я пытаюсь напрямую зарегистрироваться, но все равно та же ошибка. Пробовал System32 и Syswow64 regsvr, но та же проблема.   -  person Muhammad Faizan Khan    schedule 30.09.2019
comment
@HansPassant Я использовал C: \ windows \ System32 ›regsvr32 D: \ TheSDK \ zkemkeeper.dll, но все равно получаю ту же ошибку.   -  person Muhammad Faizan Khan    schedule 30.09.2019
comment
@HansPassant да, я пробовал с C: \ Windows \ Syswow64 \ regsvr32 D: \ TheSDK \ Zkemkeeper.dll, но все равно сообщение об ошибке то же самое.   -  person Muhammad Faizan Khan    schedule 30.09.2019
comment
Иногда регистрация не удается, потому что сама DLL (или любая из ее зависимостей) имеет отсутствующие или нарушенные зависимости. Если вы хотите копнуть глубже, загрузите и запустите Зависимости от zkemkeeper.dll и найдите красный цвет.   -  person Megabit    schedule 05.10.2019


Ответы (2)



Эта ошибка возникает из-за того, что не удалось зарегистрировать com dll Zmkeeper.dll. В некоторых случаях может потребоваться регистрация вместе с файлом typeLib. Кроме того, возможно, может быть выполнено какое-то настраиваемое действие установщика, если оно проходит через установщик. Похоже, установка демо-версии решила проблему. проверить, что эта проблема упоминается здесь

person Madhavan Nagarajan    schedule 08.10.2019