Невозможно зарегистрировать / загрузить DLL вне содержащей папки

У меня есть приложение (x64), которое использует стороннюю среду выполнения, и приложение испытывает проблемы с загрузкой этой среды выполнения через свои библиотеки DLL (также x64).

Установщик Windows пытается зарегистрировать эти библиотеки DLL (предположительно по той же причине), поэтому я протестировал регистрацию библиотек DLL с помощью regsvr32 и обнаружил интересное поведение. Я могу заставить библиотеки DLL успешно регистрироваться и отменять регистрацию с помощью regsvr32 (я могу найти их в реестре в разделе CLSIDs впоследствии), но только если я выполняю regsvr32 из папки, в которой хранятся библиотеки DLL. Даже если я использую относительные пути (например,.... \ outer \ dlls \ binary.dll) из папки, в которой они хранятся, они все еще успешно регистрируются. Я пробовал использовать как полный путь, так и частичные пути, примерно от 4 до 1 уровня выше пути, и все не удалось.

Ошибка, с которой он всегда возвращается, - "Неверный доступ к ячейке памяти". Что достаточно расплывчато, чтобы было очень трудно найти источник.

У кого-нибудь есть опыт решения этой проблемы? Кто-нибудь знает, что может быть причиной? Странно, что это работает изнутри папки, а не из других мест. Я могу только предположить, что существует какая-то экологическая проблема или коррупция, поскольку у меня есть другие машины, где вообще нет проблем. Я запустил инструмент восстановления.NET, но, похоже, это не имело никакого значения.

0 ответов

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