Impossible de charger la DLL 'mydll.dll': Le module spécifié est introuvable

Sur mon portable, où je développe l'application WPF, tout fonctionne bien, le débogage et le lancement de l' .exe application.

Mon application utilise une DLL native, pour résoudre le problème de référence-je ajouter de la DLL dans bin/debug (libération) dossier. Je accéder à l'aide de DllImport comme ceci:

[DllImport("xptodll.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int LDA_About();

Le problème est que lorsque j'essaie d'exécuter l' .exe application sur un autre PC, quand j'ai besoin d'accéder à la DLL, il se bloque. - Je faire une poignée de journaux de toutes les exceptions non gérées et l'erreur suivante s'affiche:

Impossible de charger la DLL 'xptodll.dll': Le module spécifié n'a pas pu être
trouvé. Exception de HRESULT: 0x8007007E)

La bin/debug a xptodll.dll et les fichiers d'application: .exe, .application, .exe.config .exe.manifeste, .apb.

Peut-être ce qui est important, l'xptodll.dll interagit avec le matériel, mais pourquoi wouldnt ont le même comportement sur les deux machines?

Êtes-vous de la compilation pour processeurs x86 ou x64? Est l'OS du nombre de bits différents entre votre ordinateur portable et de l'autre PC? 64-bit exe ne peut pas charger les Dll 32 bits, et le matériel de l'interface Dll ne sont généralement pas gérés et à l'écrit avec AnyCPU et ces.
Vous ne pouvez pas obtenir la version de débogage de votre fichier DLL aller sur une autre machine, il n'aura pas la version de débogage de la bibliothèque CRT disponibles. Seulement déployer la version Release. Et de déployer la Dll runtime il a besoin: microsoft.com/download/en/details.aspx?id=5555
et je dois l'installer vc++ 2010 sur chaque machine, j'ai installer l'application ? pourquoi VisualStudio ne catch dépendance que, quand un créer un projet d'installation ? détecte uniquement .net de dépendance ....

OriginalL'auteur Cristóvão Macedo | 2011-11-19