Fuslogvw.exe (Visor de registro de enlaces de ensamblados)Fuslogvw.exe (Assembly Binding Log Viewer)

El Visor de registro de enlaces de ensamblados es una herramienta que muestra los detalles de los enlaces de ensamblados.The Assembly Binding Log Viewer displays details for assembly binds. Esta información ayuda a diagnosticar la causa por la que .NET Framework no puede encontrar un ensamblado en tiempo de ejecución.This information helps you diagnose why the .NET Framework cannot locate an assembly at run time. Normalmente, estos errores se deben a que el ensamblado se ha implementado 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.These failures are usually the result of an assembly deployed to the wrong location, a native image that is no longer valid, or a mismatch in version numbers or cultures. Normalmente, el error de Common Language Runtime al localizar un ensamblado se muestra como TypeLoadException en la aplicación.The common language runtime's failure to locate an assembly typically shows up as a TypeLoadException in your application.

Importante

Debe ejecutar fuslogvw.exe con privilegios de administrador.You must run fuslogvw.exe with administrator privileges.

Esta herramienta se instala automáticamente con Visual Studio.This tool is automatically installed with Visual Studio. Para ejecutar la herramienta, use Símbolo del sistema para desarrolladores de Visual Studio (o Símbolo del sistema de Visual Studio en Windows 7) con credenciales de administrador.To run the tool, use the Developer Command Prompt for Visual Studio (or the Visual Studio Command Prompt in Windows 7) with administrator credentials. Para más información, consulte Símbolos del sistema.For more information, see Command Prompts.

En el símbolo del sistema, escriba lo siguiente:At the command prompt, type the following:

fuslogvw  

El visor muestra una entrada para cada enlace de ensamblado con errores.The viewer displays an entry for each failed assembly bind. 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; y la fecha y la hora del error.For each failure, the viewer describes the application that initiated the bind; the assembly the bind is for, including name, version, culture and public key; and the date and time of the failure.

Para cambiar la vista de la ubicación del registroTo change the log location view

  1. Seleccione el botón de opción Predeterminado para ver los errores de enlaces de todos los tipos de aplicaciones.Select the Default option button to view bind failures for all application types. De forma predeterminada, las entradas del registro se almacenan por directorios de usuario en la memoria caché wininet del disco.By default, log entries are stored in per-user directories on disk in the wininet cache.

  2. Seleccione el botón de opción Personalizar para ver los errores de enlaces en un directorio determinado.Select the Custom option button to view bind failures in a custom directory that you specify. Debe especificar la ubicación personalizada en la que quiere que el tiempo de ejecución almacene los registros; para ello, establezca la ubicación del registro predeterminada en un nombre de directorio válido en el cuadro de diálogo Configuración de registro.You must specify the custom location where you want the runtime to store the logs by setting the custom log location in the Log Settings dialog to a valid directory name. Este directorio debe estar limpio y solo debe contener los archivos que genere el runtime.This directory should be clean, and only contain files that the runtime generates. Si contiene un ejecutable que genera un error que se deba registrar, este no se registrará porque la herramienta intenta crear un directorio con el mismo nombre que el ejecutable.If it contains an executable that generates a failure to be logged, the failure will not be logged because the tool tries to create a directory with the same name as the executable. Además, los intentos de ejecutar archivos ejecutables desde la ubicación del registro generarán un error.In addition, an attempt to run an executable from the log location will fail.

    Nota

    Es preferible usar la ubicación de enlace predeterminada en lugar de la ubicación de enlace personalizada.The default bind location is preferable to the custom bind location. El runtime almacena la ubicación de enlace predeterminada en la memoria caché wininet que, de esta forma, se limpia automáticamente. Si especifica una ubicación de enlace personalizada, es responsabilidad suya limpiarla.The runtime stores the default bind location in the wininet cache, and therefore automatically cleans it out. If you specify a custom bind location, you are responsible for cleaning it out.

Para ver los detalles de un error específicoTo view details about a specific failure

  1. Seleccione en el visor el nombre de la aplicación de la entrada que desea ver.Select the application name of the desired entry in the viewer.

  2. Haga clic en el botón Ver registro.Click the View Log button. Otra posibilidad es hacer doble clic en la entrada seleccionada.Alternately, you can double-click the selected entry.

    La herramienta muestra los siguientes detalles sobre el error de enlace seleccionado:The tool displays the following details about the selected bind failure:

    • El motivo específico del error del enlace, como "Archivo no encontrado" o "No coinciden las versiones".The specific reason the bind failed, such as "file not found" or "version mismatch".

    • 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.Information about the application that initiated the bind, including its name, the application's root directory (AppBase), and a description of the private search path, if there is one.

    • La identidad del ensamblado que busca la herramienta.The identity of the assembly the tool is looking for.

    • Una descripción de las directivas de versión (aplicación, edición o administrador) que se han aplicado.A description of any Application, Publisher, or Administrator version policies that have been applied.

    • Si se ha encontrado el ensamblado en la caché global de ensamblados.Whether the assembly was found in the global assembly cache.

    • Una lista de todas las direcciones URL de búsqueda.A list of all probing URLs.

En el siguiente ejemplo de entrada del registro se muestra información detallada sobre un enlace de ensamblado con errores.The following sample log entry shows detailed information about a failed assembly bind.

*** 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/graphicfailtest.resources.DLL.  
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/graphicfailtest.resources/graphicfailtest.resources.DLL.  
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/graphicfailtest.resources.EXE.  
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/graphicfailtest.resources/graphicfailtest.resources.EXE.  
LOG: All probing URLs attempted and failed.  

Para eliminar una entrada del registroTo delete a single entry from the log

  1. Seleccione la entrada en el visor.Select an entry in the viewer.

  2. Haga clic en el botón Eliminar entrada.Click the Delete Entry button.

Para eliminar todas las entradas del registroTo delete all entries from the log

  • Haga clic en el botón Eliminar todo.Click the Delete All button.

Para actualizar la interfaz de usuarioTo refresh the user interface

  • Haga clic en el botón Actualizar.Click the Refresh button. Mientras se ejecuta, el visor no detecta automáticamente las entradas nuevas del registro.The viewer does not automatically detect new log entries while it is running. Debe usar el botón Actualizar para mostrarlas.You must use the Refresh button to display them.

Para cambiar la configuración de registroTo change the log settings

  • Haga clic en el botón Configuración para abrir el cuadro de diálogo Configuración de registro.Click the Settings button to open the Log Settings dialog.

Para ver el cuadro de diálogo Acerca deTo view the About dialog

  • Haga clic en el botón Acerca de.Click the About button.

Registros de enlaces de las imágenes nativasBinding Logs for Native Images

De forma predeterminada, Fuslogvw.exe registra las solicitudes de enlace de ensamblado normales.By default, Fuslogvw.exe logs normal assembly bind requests. También tiene la opción de registrar los enlaces de ensamblado de las imágenes nativas creadas mediante Ngen.exe (Generador de imágenes nativas).Alternatively, you can log assembly binds for native images that were created using the Ngen.exe (Native Image Generator).

Para registrar los enlaces de ensamblado de las imágenes nativasTo log assembly binds for native images

  • En el grupo Categorías de registro, seleccione el botón de opción Imágenes nativas.In the Log Categories group, select the Native Images option button.

El registro siguiente muestra un error producido por una dependencia que no existía cuando se creó la imagen nativa para la aplicación.The following log shows a failure caused by a dependency that did not exist when the native image was created for the application. Si las dependencias en tiempo de ejecución difieren de las dependencias en el momento de la ejecución de Ngen.exe, no se permitirá el enlace a una imagen nativa.If the dependencies at run time differ from the dependencies when Ngen.exe is run, binding to a native image is not allowed.

*** 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 era distinta de la configuración de seguridad en el momento en que se creó la imagen nativa.The following log shows a native image binding failure that occurred because the security settings on the computer when the application was run were different from the security settings at the time the native image was created.

*** 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 registroThe Log Settings Dialog

Puede usar el cuadro de diálogo Configuración de registro para realizar las acciones siguientes.You can use the Log Settings dialog to perform the following actions.

Para deshabilitar el registroTo disable logging

  • Seleccione el botón de opción Registro deshabilitado.Select the Log disabled option button. Tenga en cuenta que esta opción está seleccionada de forma predeterminada.Note that this option is selected by default.

Para registrar enlaces de ensamblado en excepcionesTo log assembly binds in exceptions

  • Seleccione el botón de opción Registrar texto de excepciones.Select the Log in exception text option button. En el texto de excepciones solo se registra la información de registro de Fusion menos detallada.Only the least detailed fusion log information is logged in exception text. Para ver toda la información, use cualquier otra opción.To view full information, use one of the other settings.

    Vea la nota Importante referente a los ensamblados que se cargan como dominios neutros.See the Important note regarding assemblies that are loaded as domain neutral.

Para registrar los errores de enlace de ensambladoTo log assembly bind failures

  • Seleccione el botón de opción Registrar errores de enlace en el disco.Select the Log bind failures to disk option button.

    Vea la nota Importante referente a los ensamblados que se cargan como dominios neutros.See the Important note regarding assemblies that are loaded as domain neutral.

Para registrar todos los enlaces de ensambladoTo log all assembly binds

  • Seleccione el botón de opción Registrar todos los enlaces en el disco.Select the Log all binds to disk option button.

    Vea la nota Importante referente a los ensamblados que se cargan como dominios neutros.See the Important note regarding assemblies that are loaded as domain neutral.

Importante

Cuando se carga un ensamblado como dominio neutro, por ejemplo, mediante el establecimiento de la propiedad LoaderOptimization en LoaderOptimization.MultiDomain o LoaderOptimization.MultiDomainHost, en algunos casos la activación del registro puede originar pérdidas de memoria.When an assembly is loaded as domain neutral, for example by setting the LoaderOptimization property to LoaderOptimization.MultiDomain or LoaderOptimization.MultiDomainHost, turning on logging might leak memory in some cases. Esto puede suceder si se realiza una entrada de registro al cargar un módulo con dominio neutro en un dominio de aplicación y, posteriormente, se descarga el dominio de aplicación.This can happen if a log entry is made when a domain-neutral module is loaded into an application domain, and later the application domain is unloaded. Puede ocurrir que la entrada de registro no se libere hasta que finalice el proceso.The log entry might not be released until the process ends. Algunos depuradores activan automáticamente el registro.Some debuggers automatically turn on logging.

Para habilitar una ruta de acceso de registro personalizadaTo enable a custom log path

  1. Seleccione el botón de opción Habilitar ruta de acceso de registro personalizada.Select the Enable custom log path option button.

  2. Escriba la ruta de acceso en el cuadro de texto Ruta de acceso de registro personalizada.Enter the path into the Custom log path text box.

Nota

El Visor de registro de enlaces de ensamblados (Fuslogvw.exe) usa la memoria caché de Internet Explorer (IE) para almacenar el registro de enlaces.The Assembly Binding Log Viewer (Fuslogvw.exe) uses the Internet Explorer (IE) cache to store its binding log. Debido a daños ocasionales en la memoria caché de IE, a veces el Visor de registro de enlaces de ensamblados (Fuslogvw.exe) deja de mostrar los nuevos registros de enlaces en la ventana de visualización.Due to occasional corruption in the IE cache, the Assembly Binding Log Viewer (Fuslogvw.exe) can sometimes stop showing new binding logs in the viewing window. Como consecuencia de estos daños, la infraestructura de enlaces (Fusion) de .NET no puede escribir en el registro de enlaces ni leerlo.As a result of this corruption, the .NET binding infrastructure (fusion) cannot write to or read from the binding log. (Este problema no aparece si se usa una ruta de acceso de registro personalizada). Para corregir los daños y permitir que Fusion vuelva a mostrar los registros de enlaces, borre la memoria caché de IE; para ello, elimine los archivos temporales de Internet en el cuadro de diálogo Opciones de Internet de Internet Explorer.(This issue is not encountered if you use a custom log path.) To fix the corruption and allow fusion to show binding logs again, clear the IE cache by deleting temporary internet files from within the IE Internet Options dialog.

Si la aplicación no administrada hospeda Common Language Runtime mediante la implementación de las interfaces IHostAssemblyManager e IHostAssemblyStore, las entradas de registro no pueden almacenarse en la memoria caché de wininet.If your unmanaged application hosts the common language runtime by implementing the IHostAssemblyManager and IHostAssemblyStore interfaces, log entries can't be stored in the wininet cache. Para ver las entradas de registro para los host personalizados que implementan estas interfaces, debe especificar otra ruta de acceso de registro.To view log entries for custom hosts that implement these interfaces, you must specify an alternate log path.

Para habilitar el registro para las aplicaciones que se ejecutan en el contenedor de la aplicación de WindowsTo enable logging for apps running in the Windows app container

  1. Habilite una ruta de acceso de registro personalizada, tal y como se describe en el procedimiento anterior.Enable a custom log path, as described in the previous procedure. De forma predeterminada, las aplicaciones que se ejecutan en el contenedor de la aplicación de Windows tienen acceso limitado al disco duro.By default, apps that are running in the Windows app container have limited access to the hard disk. El directorio especificado tendrá acceso de lectura y escritura para todas las aplicaciones del contenedor de la aplicación.The directory you specify will have read/write access for all apps in the app container.

  2. Seleccione la casilla Habilitar registro envolvente.Select the Enable immersive logging check box.

    Nota

    Este cuadro solo está habilitada en Windows 8 o posterior.This box is enabled only on Windows 8 or later.

Vea tambiénSee also