Une procédure imscope par {myassembly} n’a pas pu être chargée.

lors de l’exécution d’un programme, il me semble qu’il me manque une bibliothèque, lorsque je lance la sortie de mon projet, une exception apparaît au démarrage.

A first chance exception of type 'System.IO.FileLoadException' occurred in mscorlib.dll An unhandled exception of type 'System.IO.FileLoadException' occurred in mscorlib.dll Additional information: A procedure imported by 'my assembly, Version=xx.1.1.0, Culture=neutral, PublicKeyToken=7292581204d9e04a' could not be loaded. 'ScriptX.vshost.exe' (Managed): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\System.Configuration\2.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll', No symbols loaded. 

Ma question est la suivante: comment déterminer quelle bibliothèque est manquante car, à ce stade, je ne peux pas voir les valeurs transmises à:

 mscorlib.dll!System.AppDomain.ExecuteAssembly(ssortingng assemblyFile, System.Security.Policy.Evidence assemblySecurity, ssortingng[] args) + 0x3a bytes 

    Il existe en fait un mécanisme intégré pour ces diagnostics.

    (1) Dans les propriétés de votre projet / débogage, assurez-vous que la case “Activer le débogage de code natif” est cochée:

    entrez la description de l'image ici

    (2) Activez l’indicateur show-loader-snaps – il s’agit d’une clé de registre dans l’IFEO, accessible via l’interface graphique de ‘GlobalFlags’:

    entrez la description de l'image ici

    (3) Exécutez l’application et inspectez le volet de sortie ( très ) prolixe. Vous pouvez principalement passer à la fin ou rechercher ‘ERROR’.

    Plus de détails ici .

    Faites-vous n’importe quel dllimport? – cela ressemble à un problème avec une dll non gérée introuvable?

    La première chose à faire est de vous assurer que les dll non gérées ou les exes que vous appelez (via dllimport) sont déployés dans le même dossier que l’exe .Net que vous créez.

    Si la source de l’assembly appelant n’est pas disponible, vous pouvez utiliser un réflecteur sur cet assemblage pour rechercher des instructions dllimport.

    En dehors de cela, vous souhaiterez peut-être activer la visionneuse de journal fustion pour suivre les problèmes de charge d’assemblage – voir cet article de blog et la page msdn pour plus de détails

    Implémentez un gestionnaire pour l’événement AppDomain.AssemblyResolve. Il vous indique quel assemblage il recherche avec ResolveEventArgs.Name. S’il s’agit simplement d’un effort pour résoudre cet assemblage particulier, utilisez Fuslogvw.exe. Si le assembly est un assemblage non géré, l’option de profil de DependencyWalker peut vous montrer quel appel LoadLibrary () échoue. ProcMon de SysInternals fonctionnera aussi mais est beaucoup plus bruyant.