2012-03-16 9 views
6

Sto eseguendo il debug di un problema di caricamento dell'assieme, quindi sto esaminando i registri di fusione. A volte mi confondono perché iniziano a indicare un errore, poi alla fine dicono che il gruppo carica da dove mi aspetto che venga caricato.Che cosa dice questo log di Fusion?

Cosa significa "L'operazione non è riuscita" seguito da "Assemblaggio IL caricato da ..."? Non è riuscito a caricare l'assembly o è riuscito?

*** 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. 

Vedo anche questo tipo di registro per un gruppo anche quando il programma esce affermando can't load file or assembly SomeAssembly or one of its dependencies. L'assembly in questione viene caricato in base a una voce di registro simile alla precedente.

Ciò indica che non è stata trovata una dipendenza nativa dell'assieme? Devo modificare le impostazioni del registro per vedere quale dipendenza nativa non è riuscita o c'è qualcos'altro che posso fare?

+0

È questo l'intero registro? Da quello che posso vedere non c'è stato alcun errore (dal momento che è stata trovata un'immagine nativa di 'MyCorp.MyApplication.Core', è stata caricata una versione gestita trovata. – Oded

+0

Questo è il registro per una particolare dll. Questa dll è una dll gestita e si carica con successo per quanto ne so.Qual è il motivo per cui mi chiedo cosa sia "fallito" –

+0

Cerca un'altra voce di registro che mostri un errore di binding per "una delle sue dipendenze". ProcMon di SysInternals può mostrarti che cerca DLL non gestita se questa è la causa Ignora "Nessuna immagine nativa trovata trovata", è normale: –

risposta

0

Penso che sia perché il CLR effettua alcuni tentativi di ricerca della DLL in modo che prima fallisca e poi abbia successo. È possibile eseguire il binding all'evento assemblyresolve e dare un'occhiata a come funziona. Se mi ricordo che cerca prima nella GAC ​​cartella, quindi locale sottocartelle poi ...

See documentation here.

Problemi correlati