2012-03-16 6 views
6

Je suis en train de déboguer un problème de chargement d'assemblage, donc je regarde à travers les journaux de fusion. Parfois, ils me confondent parce qu'ils commencent par indiquer un échec, puis à la fin, ils disent que l'ensemble charge de l'endroit où je m'attends à ce qu'il soit chargé. Qu'est-ce que "L'opération a échoué" suivi de "IL assembly loaded from ..." signifie vraiment? At-il échoué à charger l'assemblage, ou at-il réussi?Que dit ce journal Fusion?

*** Assembly Binder Log Entry (2012-03-16 @ 10:25:14) *** 

The operation failed. 
Bind result: hr = 0x80070002. The system cannot find the file specified. 

Assembly manager loaded from: C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\clr.dll 
Running under executable C:\Program\MyCorp\MyApplication1.2.0.0\MyApplication.exe 
--- A detailed error log follows. 

=== Pre-bind state information === 
LOG: User = VIRTUALXP-63912\XPMUser 
LOG: DisplayName = MyCorp.MyApplication.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 
(Fully-specified) 
LOG: Appbase = file:///C:/Program/MyCorp/MyApplication1.2.0.0/ 
LOG: Initial PrivatePath = NULL 
LOG: Dynamic Base = NULL 
LOG: Cache Base = NULL 
LOG: AppName = MyApplication.exe 
Calling assembly : MyApplication, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null. 
=== 
LOG: Start binding of native image MyCorp.MyApplication.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null. 
WRN: No matching native image found. 
LOG: IL assembly loaded from C:\Program\MyCorp\MyApplication1.2.0.0\MyCorp.MyApplication.Core.dll. 

Je vois aussi ce genre de journal pour un ensemble, même lorsque le programme quitte indiquant can't load file or assembly SomeAssembly or one of its dependencies. L'ensemble en question est chargé selon une entrée de journal similaire à celle ci-dessus.

Cela indiquerait-il qu'une dépendance native de l'assembly n'a pas été trouvée? Dois-je modifier les paramètres du journal pour voir quelle dépendance native a échoué ou y a-t-il autre chose que je puisse faire?

+0

Est-ce tout le journal? De ce que je peux voir il n'y avait pas d'échec (puisqu'une image native de 'MyCorp.MyApplication.Core' a été trouvée, une version gérée trouvée a été chargée.) – Oded

+0

Ceci est le journal d'une DLL particulière. , et il se charge avec succès pour autant que je sache.C'est pourquoi je me demande ce que "échoué" –

+0

Rechercher une autre entrée de journal qui montre un échec de liaison pour "une de ses dépendances". ProcMon de SysInternals peut vous montrer la recherche d'un Ignorer "aucune image native correspondante trouvée", c'est normal –

Répondre

0

Je pense que c'est parce que le CLR fait des tentatives de recherche dans la DLL, d'abord échouer puis réussir. Vous pouvez lier à l'événement assemblyresolve et voir comment cela fonctionne. Si je me souviens qu'il recherche d'abord dans le dossier local GAC puis sous-dossiers puis ...

See documentation here.

Questions connexes