2010-03-02 4 views
2

Je rencontre l'exception suivante lorsque je copie tout le programme directoy sur une autre machine. Quels outils puis-je utiliser pour le déboguer? Je vous remercie.Les assemblages ou les fichiers ne peuvent pas être chargés lors du lancement d'un exec

Exception non gérée: System.TypeInitializationException: l'initialiseur de type fo r 'SomeClass' a émis une exception n. ---> System.IO.FileLoadException: Impossible de charger le fichier ou l'assembly 'SomeAssembly.dll, Version = 0.0.0.0, Culture = neut ral, PublicKeyToken = null' ou l'une de ses dépendances. Cette application a échoué d pour démarrer car la configuration de l'application est incorrecte. Réinstaller l'application peut résoudre ce problème. (Exception de HRESULT: 0x800736b1) Nom du fichier: 'SomeAssembly.dll, Version = 0.0.0.0, Culture = neutral, PublicKeyToken = null' ---> System.Runtime.InteropServi ces.COMException (0x800736b1): Cette application n'a pas pu démarrer car la configuration de l'application est incorrecte. La réinstallation de l'application peut résoudre le problème de . (Exception de HRESULT: 0x800736B1)

Répondre

4

Il s'agit d'une erreur Windows, pas d'une erreur .NET. Le code d'erreur est 14001, ERROR_SXS_CANT_GEN_ACTCTX, "L'application n'a pas pu démarrer car sa configuration côte-à-côte est incorrecte. Veuillez consulter le journal des événements de l'application pour plus de détails."

Regardez dans le journal des événements Windows, il vous indique quelle DLL vous avez oublié d'installer sur la machine cible. S'il s'agit d'un assembly en mode mixte, il s'agit généralement de la DLL d'exécution C/C++ ou de la version de débogage.

+0

@bobugz: Le message d'erreur est "L'assembly dépendant Microsoft.VC90.DebugCRT n'a pas pu être trouvé et Last Error was L'assembly référencé n'est pas installé sur votre système." Comment rechercher "Microsoft.VC90.DebugCRT" dans ma machine réussie? – Ricky

+0

Oui, c'est la DLL d'exécution C/C++ et vous * * avez déployé la version de débogage. Construisez votre build de version, installez ceci: http://www.microsoft.com/downloads/details.aspx?familyid=2051a0c1-c9b5-4b0a-a8f5-770a549fd78c&displaylang=en –

+0

La même exception est toujours levée après l'installation du lien à condition de. – Ricky

0

Si vous ne faites que copier les fichiers, vérifiez que les dll ne sont pas bloqués par le système d'exploitation. Pour vérifier cela, faites un clic droit sur la DLL, allez dans Propriétés et regardez en bas à droite de la boîte de dialogue sous le bouton Avancé. S'il y a un bouton qui dit "Débloquer", cliquez dessus. Vous devrez soit faire cela à tous, soit les ajouter au GAC en utilisant l'utilitaire gacutil.

Paul

1

Vous pouvez utiliser le fusion log pour déboguer ce genre de problème. Il vous montrera où il cherche les dépendances, et s'il les a trouvées, et s'il les a trouvées et n'a pas réussi à les charger, pourquoi.

+0

bel outil, merci! – Ricky

Questions connexes