2011-09-27 10 views
7

Mam aplikację .net, która używa niektórych skompilowanych bibliotek DLL Win32 vC++. Działa świetnie na 32-bitowym Win, ale na 64-bitowym problemie jest: "Nie można załadować biblioteki DLL" xyz ": Nie można znaleźć określonego modułu. (Wyjątek od HRESULT: 0x8007007E)"Brakujące biblioteki dll w 64-bitowym Win. Wygenerowanie

Korzystanie z zależności walker Znalazłem, że pomijane są następujące biblioteki DLL: MSVCP100.DLL, MSVCR100.DLL, GDIPLUS.DLL, GPSVC.DLL, IESHIMS.DLL

Jak mogę je zainstalować na moim 64-bitowym Win? Gdzie mam je umieścić? Czy powinienem je zarejestrować? Lub...?

Uwaga, mój projekt jest kompilowany na platformę x86 i jest uruchamiany z folderu Program Files (x86) jako aplikacja 32-bitowa. Moje dll są zwijane jako Win32 przez Visual C++ w Visual Studio 2010.

Pamiętaj, że jest to niemożliwe, aby uzyskać 64 wersje moich bibliotek dll z innych powodów, więc nie byłoby to rozwiązanie.

Dzięki!

+0

IESHIMS zaginął na każdym projekcie, jaki kiedykolwiek skompilowałem. Nie mam pojęcia dlaczego. – meawoppl

Odpowiedz

10

Cały proces powinien być 32 lub 64-bitowy. Jeśli nie możesz skompilować wszystkich bibliotek zależności w 64-bitowym, musisz uruchomić projekt .NET w 32-bitowym. Aby to zrobić, utwórz konfigurację x86 (domyślnie Any CPU) i zbuduj projekt .NET w tej konfiguracji.

Należy również zainstalować pakiet redystrybucyjny VC++ 2010 na docelowym komputerze, z poprawną bitness, w twoim przypadku - x86. Ten pakiet można pobrać ze strony internetowej Microsoft WEB.

Jeśli twój program ma pakiet instalacyjny, redystrybucja VC++ powinna zostać do niego dodana jako pojedynczy plik lub jako moduły scalające.

+0

Wszystko jest zbudowane jako x86, to nie jest problem. Problemy są te biblioteki DLL – Tom

+0

Dzięki. Udostępniono pakiet redystrybucyjny VC++ 2010. – Tom

2

Jak zauważył ALex Farber, trzeba zainstalować kilka bibliotek DLL środowiska wykonawczego na komputerze docelowym:

Powiązane problemy