3

Я пытаюсь установить 32-битный клиент Oracle на нескольких компьютерах с Windows 7. Эта версия требуется для программного обеспечения клиента. Я успешно установил его примерно на дюжине ПК, используя один и тот же установщик, но две машины отказываются регистрировать DLL. Два компьютера имеют разные марки и модели. Я был в состоянии установить это программное обеспечение в прошлом на этих моделях. Это ошибка, которую выдает установщик:

Ошибка при установке

Файл копируется в место, указанное выше. Если я решу игнорировать ошибку и вручную зарегистрировать ее позже, я получу следующую ошибку:

Ошибка во время regsvr32

Эта ошибка возвращается, использую ли я 32-битную (syswow64) или 64-битную версию regsvr32. Командная строка запускается от имени администратора, а ID, с которым я вошел в систему, - это администратор. Я попытался скопировать файл в папку syswow64, но я получаю ту же ошибку. Этот же установщик работает на других ПК.

Чтобы еще больше усложнить проблему, один из двух компьютеров также не зарегистрирует файл OCX из другого 32-битного установщика:

Вторая ошибка установщика

Оба компьютера являются относительно новыми и имеют стандартное программное обеспечение. Мы используем MS Forefront для безопасности, но отключение, которое не изменило поведение. Что мне не хватает?

2 ответа2

1

Полученный вами код ошибки означает ERROR_MOD_NOT_FOUND , в вашей системе отсутствуют некоторые зависимые dll, на которые полагаются обе эти программы.

Одним из инструментов, который я часто использовал для поиска подобных проблем, является Dependency Walker, он анализирует DLL или OCX и сообщает вам, от каких других DLL это зависит.

Если он не может найти его с помощью статического анализа, вам нужно будет сделать это с помощью динамического анализа и "профилирования" программы. Я работал только с exe-файлами, поэтому я не уверен, как вы будете запускать dll для профилирования, возможно, вам нужно загрузить regsvr32 в обработчик зависимостей и запустить его с аргументами, чтобы загрузить вашу dll, и он может подобрать ее таким образом.

Как только вы обнаружите отсутствующую dll и добавите ее обратно в систему, все должно работать.

0

Вы можете просто скачать 64-битный клиент

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .