Visor de registro de enlaces de ensamblados (Fuslogvw.exe)

Actualización: noviembre 2007

El Visor de registro de enlaces de ensamblados es una herramienta que muestra los detalles de los enlaces de ensamblado. Esta información ayuda a diagnosticar la causa por la que .NET Framework no puede encontrar un ensamblado en tiempo de ejecución. Normalmente, estos errores se deben a que el ensamblado se implementa en una ubicación incorrecta, a que una imagen nativa ha dejado de ser válida o a que los números de versiones o referencias culturales no coinciden. Normalmente el error de Common Language Runtime al localizar un ensamblado se muestra como TypeLoadException en la aplicación.

Para ver el contenido del registro de enlaces de ensamblados

El visor muestra una entrada para cada enlace de ensamblado con errores. Para cada error, el visor describe la aplicación en la que se inició el enlace; el ensamblado para el que se realiza el enlace, incluidos el nombre, la versión, la referencia cultural y la clave pública; así como la fecha y la hora del error.

Para cambiar la vista de la ubicación del registro

  1. Seleccione el botón de opción Predeterminado para ver los errores de enlace de todos los tipos de aplicaciones. De forma predeterminada, las entradas del registro se almacenan por directorios de usuario en la caché wininet del disco.

  2. Seleccione el botón de opción Custom para ver los errores de enlaces en el directorio que especifique. Debe especificar la ubicación personalizada donde desea que el motor en tiempo de ejecución almacene los registros mediante el establecimiento de la ubicación de registro personalizada (en el cuadro de diálogo Configuración de registro) en un nombre de directorio válido. Este directorio debe estar limpio y sólo debe contener los archivos que genere el motor en tiempo de ejecución. Si contiene un ejecutable que genere un error que se vaya a registrar, el error no se registrará, porque la herramienta intenta crear un directorio con el mismo nombre que el ejecutable. Además, los intentos de ejecutar archivos ejecutables desde la ubicación del registro producirán un error.

    Nota

    Es preferible utilizar la ubicación de enlace predeterminada, en lugar de la ubicación de enlace personalizada. El motor en tiempo de ejecución almacena la ubicación de enlace predeterminada en la caché de wininet que, por consiguiente, se limpia automáticamente. Si se especifica una ubicación de enlace personalizada, se es responsable de efectuar la limpieza.

Para ver los detalles de un error específico

  1. Seleccione el nombre de la aplicación de la entrada que desee en el visor.

  2. Haga clic en el botón View Log. Otra posibilidad es hacer doble clic en la entrada seleccionada.

    La herramienta muestra los siguientes detalles sobre el error encontrado en el enlace seleccionado:

    • El motivo específico del error del enlace, como "Archivo no encontrado" o "No coinciden las versiones".

    • Información sobre la aplicación que inició el enlace, incluidos el nombre y el directorio raíz de la aplicación (AppBase) y una descripción de la ruta de acceso de búsqueda privada, si existe.

    • La identidad del ensamblado que busca la herramienta.

    • Una descripción de las directivas de versión de aplicaciones, editor o administrador aplicadas.

    • Si se ha encontrado el ensamblado en la caché de ensamblados global.

    • Una lista de direcciones URL de búsqueda.

En el siguiente ejemplo de entrada del registro se muestra información detallada sobre un enlace de ensamblado con errores.

** Assembly Binder Log Entry (3/5/2007 @ 12:54:20 PM) **

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

Assembly manager loaded from:  C:\WINNT\Microsoft.NET\Framework\v2.0.50727\fusion.dll
Running under executable  C:\Program Files\Microsoft.NET\FrameworkSDK\Samples\Tutorials\resourcesandlocalization\graphic\cs\graphicfailtest.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: DisplayName = graphicfailtest.resources, Version=0.0.0.0, Culture=en-US, PublicKeyToken=null
 (Fully-specified)
LOG: Appbase = C:\Program Files\Microsoft.NET\FrameworkSDK\Samples\Tutorials\resourcesandlocalization\graphic\cs\
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = NULL
Calling assembly : graphicfailtest, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
===

LOG: Processing DEVPATH.
LOG: DEVPATH is not set. Falling through to regular bind.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Post-policy reference: graphicfailtest.resources, Version=0.0.0.0, Culture=en-US, PublicKeyToken=null
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/en-US/graphicfailtest.resources.DLL.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/en-US/graphicfailtest.resources/graphicfailtest.resources.DLL.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/en-US/graphicfailtest.resources.EXE.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/en-US/graphicfailtest.resources/graphicfailtest.resources.EXE.
LOG: All probing URLs attempted and failed.

Para eliminar una entrada del registro

  1. Seleccione la entrada en el visor.

  2. Haga clic en el botón Delete Entry.

Para eliminar todas las entradas del registro

  • Haga clic en el botón Delete All.

Para actualizar la interfaz de usuario

  • Haga clic en el botón Refresh. Mientras se ejecuta, el visor no detecta automáticamente las entradas nuevas del registro. Por tanto, deberá utilizar el botón Refresh para mostrarlas.

Para cambiar la configuración del registro

  • Haga clic en el botón Configuración para abrir el cuadro de diálogo Configuración de registro.

Para ver el cuadro de diálogo Acerca de

  • Haga clic en el botón Acerca de.

Registros de enlace de las imágenes nativas

De forma predeterminada, Fuslogvw.exe registra las solicitudes de enlace de ensamblado normales. O bien, puede registrar los enlaces de ensamblado de las imágenes nativas creadas mediante Generador de imágenes nativas (Ngen.exe).

Para registrar los enlaces de ensamblado de las imágenes nativas

  • En el grupo Registrar categorías, seleccione el botón de opción Imágenes nativas.

El registro siguiente muestra un error producido por una dependencia que no existía cuando se creó la imagen nativa para la aplicación. Si las dependencias en tiempo de ejecución difieren de las dependencias en el momento de ejecución de Ngen.exe, no se permitirá el enlace a una imagen nativa.

** Assembly Binder Log Entry (12/8/2006 @ 5:22:07 PM) **

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

Assembly manager loaded from:  E:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll
Running under executable  E:\test\App.exe
--- A detailed error log follows. 

LOG: Start binding of native image App, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
LOG: IL assembly loaded from E:\test\App.exe.
LOG: Start validating native image App, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
LOG: Start validating all the dependencies.
LOG: [Level 1]Start validating native image dependency mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
LOG: Dependency evaluation succeeded.
LOG: [Level 1]Start validating IL dependency b, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
WRN: Dependency assembly was not found at ngen time, but is found at binding time. Disallow using this native image.
WRN: No matching native image found.
LOG: Bind to native image assembly did not succeed. Use IL image.

El registro siguiente muestra un error de enlace a una imagen nativa producido porque la configuración de seguridad del equipo cuando se ejecutó la aplicación difería de la configuración de seguridad en el momento en que se creó la imagen nativa.

** Assembly Binder Log Entry (12/8/2006 @ 5:29:09 PM) **

The operation failed.
Bind result: hr = 0x80004005. Unspecified error

Assembly manager loaded from:  E:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll
Running under executable  E:\test\Application101622.exe
--- A detailed error log follows. 

LOG: Start binding of native image Application101622, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
LOG: IL assembly loaded from E:\test\Application101622.exe.
LOG: Start validating native image Application101622, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
LOG: Start validating all the dependencies.
LOG: [Level 1]Start validating native image dependency mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
LOG: Dependency evaluation succeeded.
LOG: [Level 1]Start validating IL dependency Dependency101622, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
LOG: Dependency evaluation succeeded.
LOG: Validation of dependencies succeeded.
LOG: Start loading all the dependencies into load context.
LOG: Loading of dependencies succeeded.
LOG: Bind to native image succeeded.
Native image has correct version information.
Attempting to use native image E:\Windows\assembly\NativeImages_v2.0.50727_64\Application101622\1ac7fadabec4f72575d807501e9fdc72\Application101622.ni.exe.
Rejecting native image because it failed the security check. The assembly's permissions must have changed since the time it was ngenned, or it is running with a different security context.
Discarding native image.

El cuadro de diálogo Configuración de registro

Puede utilizar el cuadro de diálogo Configuración de registro para realizar las siguientes acciones.

Para deshabilitar el registro

  • Seleccione el botón de opción Registro deshabilitado. Tenga en cuenta que esta opción está seleccionada de forma predeterminada.

Para registrar enlaces de ensamblado en excepciones

  • Seleccione el botón de opción Registro en texto de excepción.

    Vea la nota Importante referente a los ensamblados que se cargan como neutrales con respecto al dominio.

Para registrar los errores de enlace de ensamblado

  • Seleccione el botón de opción Registrar errores de enlace en disco.

    Vea la nota Importante referente a los ensamblados que se cargan como neutrales con respecto al dominio.

Para registrar todos los enlaces de ensamblado

  • Seleccione el botón de opción Registrar todos los enlaces en disco.

    Vea la nota Importante referente a los ensamblados que se cargan como neutrales con respecto al dominio.

Nota importante:

Cuando se carga un ensamblado como neutral con respecto al dominio, por ejemplo estableciendo el valor de la propiedad LoaderOptimization en LoaderOptimization.MultiDomain o LoaderOptimization.MultiDomainHost, la activación del registro puede originar pérdidas de memoria en algunos casos. Esto puede suceder si se realiza una entrada de registro al cargar un módulo como neutral con respecto al dominio en un dominio de aplicación y, posteriormente, se descarga el dominio de aplicación. Puede que no se libere la entrada de registro hasta que finalice el proceso. Algunos depuradores activan automáticamente el registro.

Para habilitar una ruta de acceso de registro personalizada

  1. Seleccione el botón de opción Habilitar ruta de acceso de registro personalizada.

  2. Escriba la ruta de acceso en el cuadro de texto Ruta de acceso de registro personalizada.

Nota

Visor de registro de enlaces de ensamblados (Fuslogvw.exe) utiliza la caché de Internet Explorer (IE) para almacenar el registro de enlaces. Debido al daño ocasional en la caché de IE, Visor de registro de enlaces de ensamblados (Fuslogvw.exe) a veces puede impedir que se muestren los nuevos registros de enlaces en la ventana de vista. Como resultado de este daño, la infraestructura de enlaces (fusión) de .NET no puede escribir o leer del registro de enlaces. (No aparece este problema si utiliza una ruta de acceso del registro personalizada.) Para corregir el daño y permitir la fusión para mostrar de nuevo los registros de enlaces, borre la caché de IE eliminando los archivos temporales de Internet en el cuadro de diálogo Opciones de Internet de Internet Explorer.

Si la aplicación no administrada aloja Common Language Runtime mediante la implementación de las interfaces IHostAssemblyManager e IHostAssemblyStore, las entradas de registro no pueden almacenarse en la caché de wininet. Si desea ver las entradas de registro para los host personalizados que implementan estas interfaces, debe especificar otra ruta de acceso de registro.

Vea también

Conceptos

Caché de ensamblados global

Cómo el motor en tiempo de ejecución ubica ensamblados

Referencia

Herramientas de .NET Framework

TypeLoadException

Símbolo del sistema de SDK