Pracuję nad aplikacją sieci Web na maszynie z 64-bitowym Windows 8 przy użyciu wielu istniejących bibliotek. Chcę użyć dwóch bibliotek DLL C# odnoszących się do jednej natywnej biblioteki DLL. Obie biblioteki DLL C# są kompilowane do użytku 64-bitowego i testowane w aplikacjach testowych. Moja aplikacja internetowa odwołuje się do bibliotek DLL C# i ma działać na IIS 8. Dwa pliki DLL C# zostały dodane jako odniesienia do projektu i natywnej biblioteki DLL ręcznie do folderu bin aplikacji internetowej. Ilekroć buduję i uruchamiam rozwiązanie, otrzymuję wyjątek pokazany w tytule. Wiem, że jest to znak problemu dotyczącego 32-bitowego i 64-bitowego kodu działającego w jednym procesie. Dlatego wypróbowałem wszystkie różne konfiguracje kompilacji, ale wynik nigdy się nie zmienił.BadImageFormatException: Nie można załadować pliku lub zestawu ... zły format - tylko z aplikacją WWW
Stworzyłem aplikację konsolową wykonującą dokładnie to, czego próbuję w aplikacji internetowej i działała bezbłędnie. Aplikacja sieciowa z tymi samymi ustawieniami rzuca jednak wyjątek, co jest dla mnie bardzo mylące.
Co próbowałem dotąd: ustawienie
- basen Zmień zastosowanie do „umożliwiają aplikacje 32-bitowe”
- skompilowania wszystkich bibliotek DLL z dowolnym procesorem, 64-bitową lub x86 cel
- Sprawdź corflags wszystkich Pliki DLL
Mogę zapewnić eksport projektu dla wszystkich chętnych do pomocy w uruchomieniu tej konfiguracji!
Naprawdę doceniam każdą pomoc!
Masz jeszcze jakieś rozwiązanie?Ponieważ również doświadczamy tego samego problemu i do tej pory nie znaleźliśmy działającego rozwiązania. –
Cześć Saeed, przepraszam za moją spóźnioną odpowiedź. Ponieważ mój projekt był aplikacją internetową, postanowiłem stworzyć drugą aplikację internetową jako serwis internetowy, który sprawia, że funkcjonalność rodzimej biblioteki dll jest dostępna poprzez REST. Nie znalazłem żadnego innego rozwiązania problemu. – JZet