Système.DllNotFoundException: Impossible de charger la DLL. Pas d'erreurs dans Dev machine, mais erreur dans les ordinateurs cibles

J'ai construit une application en C# avec WPF sur Visual Studio 2012 qui utilise la DLL C++ et les cibles .NET4.5. J'ai deux projets en cours d'exécution, l'un pour le projet C# et l'autre pour le C++ DLL projet. J'ai sorti les deux projets dans un dossier qui a un .exe pour C# et un .dll pour C++ dans le même dossier.

J'ai lancé sur ma machine où ils ont été développés et tout fonctionne bien. Je lance le .exe dans d'autres machines et des il jette cette exception:

Système.DllNotFoundException: Impossible de charger la DLL

C'est de ne pas reconnaître la DLL dans le même dossier.

J'ai essayé beaucoup de choses et rien ne semble fonctionner. J'ai suivi la solution dans ce post mais rien n'a fonctionné.

De Dev et de la machine Cible sont identiques. En Dev, Visual Studio 2012 est installé, mais c'est la seule différence.

Code:

C#:

[DllImport(@"Wireless.dll", EntryPoint = "?cert_exists@certificate@CertFuncs@@SAHHPBD@Z", CallingConvention = CallingConvention.Cdecl)]
    static extern int cert_exists(int store, [MarshalAs(UnmanagedType.LPTStr)]string cert_str);

C++:

static int __declspec(dllexport) cert_exists(int type, LPCSTR cert_str);

Mise à jour:

Si j'installe Visual Studio 2012 sur la machine cible, tout fonctionne bien. Si je le supprime, l'application se bloque de nouveau. Toutes les idées sur ce que VS en ajoutant que peut faire la demande de travail?

Vous avez besoin de nous montrer un exemple de code ici. Qu'avez-vous essayé? si vous affichez le code nous pouvons peut-être vous aide ici... Une chose que cela sonne comme est que vous avez codé en dur le chemin d'accès à l' .dll (c'est à dire F:\SomeDir\someDLL.dll), vous aurez besoin d'utiliser un chemin relatif (c'est à dire .\SomeDLL.dll).
Est le C++ C++ géré ou non géré? Comment êtes-vous référant à partir de l'application en C#?
C++ n'est pas géré. J'ai ajouté un peu de code.
Donc, vous avez un répertoire de déploiement, avec l'exe et la dll, ce qui (1) est séparé de la dev répertoires, (2) d'œuvres sur le dev de la machine, mais (3) ne fonctionne pas sur la machine de l'utilisateur?
Les deux machines sont sous Windows 7 64 bits, ils sont identiques en provenance de la même image

OriginalL'auteur Maher Manoubi | 2013-01-29