Système.DllNotFoundException: Impossible de charger la DLL sur windows 2003
J'ai le c++ dll à l'aide dans mon projet c#, Il fonctionnait très bien sur mon window xp machine, mais quand je copie mon projet de débogage sous windows 2003 server (x64), j'ai reçu le message d'erreur ci-dessous, quelqu'un peut-il me dire quel est ce problème et comment puis-je résoudre ce problème.
Grâce
"Du système.DllNotFoundException: Impossible de charger la DLL 'lib.dll': Cette application n'a pas pu démarrer car la configuration de l'application est incorrecte. La réinstallation de cette application peut corriger ce problème"
Est
oui, il est, mais l'erreur est toujours apparaître..quelqu'un sait comment résoudre..je me sens très frustré...
Est lib.dll construit en debug? Il peut être tentant de lier contre le debug C++ runtime qui ne sera pas installé si Visual Studio n'est pas installé sur la machine Windows 2003.
Bonne réflexion, qui a mordu moi, trop de fois 🙂
je n'ai pas le code source pour lib.dll..mon projet n'copie lib.dll pour déboguer un dossier, quand je clique sur le débogage.
lib.dll
présent dans le répertoire de l'application?oui, il est, mais l'erreur est toujours apparaître..quelqu'un sait comment résoudre..je me sens très frustré...
Est lib.dll construit en debug? Il peut être tentant de lier contre le debug C++ runtime qui ne sera pas installé si Visual Studio n'est pas installé sur la machine Windows 2003.
Bonne réflexion, qui a mordu moi, trop de fois 🙂
je n'ai pas le code source pour lib.dll..mon projet n'copie lib.dll pour déboguer un dossier, quand je clique sur le débogage.
OriginalL'auteur Rick | 2010-01-19
Vous devez vous connecter pour publier un commentaire.
Il se plaint qu'il a des difficultés à localiser le CRT dll. Vérifiez tout d'abord que la DLL contient le manifeste. Dans Visual Studio, Fichier + Ouvrir + de Fichier, sélectionnez la DLL et vérifiez qu'il contient un RT_MANIFEST nœud. Le problème suivant est que vous ne pouvez pas déployer une version de débogage de votre DLL. Il va avoir une dépendance sur la version de débogage de la bibliothèque CRT, vous ne pouvez pas obtenir que l'installé sur la machine cible.
Déployer la Version de publication de votre fichier DLL ou à la compilation de la DLL avec l'option /MT de sorte que le CRT est lié statiquement. Projet + Propriétés, C/C++, Génération De Code, La Bibliothèque D'Exécution. Cela ne fonctionnera pas si la DLL a été compilé avec le /clr option.
OriginalL'auteur Hans Passant
Pour le chargement des DLL problème, je vous suggère d'utiliser le Dependency Walker outil. Il s'est avéré précieux lorsque l'on traite avec des problèmes car il va vous montrer le problème exact.
Si vous possédez Visual Studio 2005, vous pouvez les trouver dans
C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin\depends.exe
.Mise à jour:
MSVCR90D.DLL
est la version de débogage de Visual C++ runtime 9.0. Il doit être utilisé uniquement à des fins de débogage but. Je vous suggère fortement de construire une version de votre bibliothèque afin d'éviter le chargement des DLL problème. Toutefois, si vous avez absolument besoin pour déployer la version de débogage, vous trouverez toutes les Dll requises dansC:\Program Files\Microsoft Visual Studio 9.0\VC\redist\Debug_NonRedist\x86
.C'est le billet. J'ai été aux prises avec ce problème dans unity3d pour une semaine maintenant.
OriginalL'auteur Laurent Etiemble
Est lib.dll une DLL 32 bits? Votre programme C# sera exécuté sur x64 nativement mais sera impossible de charger la Dll 32 bits. Vous pouvez essayer de changer le PROCESSEUR cible du projet C# "x86" pour le forcer à s'exécuter sous WOW64.
OriginalL'auteur wj32
dirait que vous n'avez pas installé le runtime visual c++ sur la machine cible. Vous pouvez l'installer à partir de ici Comme cela semble être en utilisant les versions de débogage de ces dll peut-être que vous aussi vous avez besoin pour construire votre application en mode release en premier? Ce post et cette une avez d'autres suggestions qui pourraient vous aider...
OriginalL'auteur Sam Holder