1

У нас есть старый классический ASP-сайт, который я пытаюсь разместить на новом сервере Server 2012. Он использует DLL, разработанную в домашних условиях на VB6.

Я скопировал установочный файл, и это ошибка. Я пытаюсь зарегистрировать DLL вручную, используя "regsvr32 pathToDll\theDll.dll", и она возвращается с ошибкой 0x80004005. Google предлагает мне запустить команду из командной строки с повышенными правами. Так я и получаю ту же ошибку. Я также попытался запустить ту же команду из каталога SYSWOW64, и я получил ту же ошибку.

Через Google я также обнаружил, что это может быть из-за отсутствующих зависимостей. Я использовал Dependency Walker и, конечно же, ему не хватало нескольких вещей. Итак, я узнал, что мне нужно было установить файлы среды выполнения VB6 и включить несколько функций, и все зависимости были разрешены. Поэтому я попытался перерегистрировать DLL, и она все еще выдает ту же ошибку.

Есть идеи? Я знаю, что это 32-битная DLL на 64-битной машине, но она должна по крайней мере зарегистрироваться.

1 ответ1

1

Хорошо, после дополнительных поисков я обнаружил, что через Dependency Walker dll ссылается на API-MS-WIN-CORE-SYNCH-L1-1-0.DLL через цепочку других dll.

Основываясь на этой информации от Microsoft, не похоже, что она совместима как есть. Кажется, что мне пришлось бы перекомпилировать DLL, чтобы заставить эту работу изменить ссылки.

Решение: я раскручиваю виртуальную машину для этого унаследованного приложения.

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