Отсутствует DLL на 64 бит Win

У меня есть .net-приложение, которое использует некоторые компилированные DLL файлы Win32 с компиляцией. Он отлично работает на 32-битной Win, но на 64-битном уровне возникает проблема: "Невозможно загрузить DLL" xyz ": указанный модуль не найден. (Исключение из HRESULT: 0x8007007E)"

Использование зависимого ходок Я нашел, что он пропускает следующие DLL: MSVCP100.DLL, MSVCR100.DLL, GDIPLUS.DLL, GPSVC.DLL, IESHIMS.DLL

Как я могу установить их на 64-битную Win? Где я должен их поставить? Должен ли я зарегистрировать их? Или...?

Примечание. Мой проект скомпилирован для платформы x86 и запускается из папки Program Files (x86) в виде 32-разрядного приложения. Мои dlls компилируются как Win32 через Visual С++ в Visual Studio 2010.

Обратите внимание, что из-за каких-либо других причин миссия невозможна получить 64-разрядную версию моих DLL, поэтому это не будет решением.

Спасибо!

Ответ 1

Весь процесс должен быть 32 или 64 бит. Если вы не можете скомпилировать все библиотеки зависимостей в 64 бит, вам нужно запустить .NET-проект в 32-разрядном формате. Для этого создайте конфигурацию x86 (по умолчанию - любой процессор) и создайте проект .NET в этой конфигурации.

Вам также необходимо установить распространяемый пакет VС++ 2010 на конечный компьютер с правильной битностью в вашем случае - x86. Этот пакет можно загрузить с веб-сайта Microsoft.

Если в вашей программе есть установочный пакет, VС++ redistributable должен быть добавлен к нему как отдельный файл или как модули слияния.

Ответ 2

Как отметил ALex Farber, вам нужно установить некоторые DLL среды выполнения на целевой машине: