2012-03-16 11 views
6

Estoy depurando un problema de carga de ensamblaje, por lo tanto, estoy revisando los registros de fusión. A veces me confunden porque comienzan indicando una falla, y al final dicen que el ensamblaje se carga desde donde espero que se cargue.¿Qué está diciendo este registro de Fusion?

¿Qué significa realmente "Fallo en la operación" seguido de "Montaje de IL cargado de ..."? ¿Falló la carga del ensamblaje o tuvo éxito?

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

También veo este tipo de registro para un montaje incluso cuando el programa sale indicando can't load file or assembly SomeAssembly or one of its dependencies. El conjunto en cuestión se carga de acuerdo con una entrada de registro similar a la anterior.

¿Esto indicaría que no se encontró una dependencia nativa del ensamblado? ¿Debo cambiar la configuración del registro para ver qué dependencia nativa falló, o hay algo más que pueda hacer?

+0

Es esto todo el registro? Por lo que puedo ver, no hubo falla (ya que se encontró una imagen nativa de 'MyCorp.MyApplication.Core', se cargó una versión administrada que se encontró. – Oded

+0

Este es el registro de una dll en particular. Este dll es un dll administrado , y se carga con éxito por lo que sé. Por eso me pregunto qué "falló". –

+0

Busque otra entrada de registro que muestre una falla de enlace para "una de sus dependencias". ProcMon de SysInternals puede mostrarlo buscando una DLL no administrado si esa es la causa. Ignorar "no se ha encontrado ninguna imagen nativa coincidente", eso es normal. –

Respuesta

0

Creo que es porque el CLR hace algunos intentos de búsqueda en el dll para que primero falle y luego lo logre. Puede vincularse al evento assemblyresolve y echar un vistazo a cómo funciona. Si recuerdo que busca en primer lugar en la GAC ​​entonces carpeta local subcarpetas entonces ...

See documentation here.

Cuestiones relacionadas