Отсутствует DLL на 64-битной Win - PullRequest
       7

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

7 голосов
/ 27 сентября 2011

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

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

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

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

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

Спасибо!

Ответы [ 2 ]

10 голосов
/ 27 сентября 2011

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

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

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

2 голосов
/ 27 сентября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...