Partager via


Assembly Binding Log Viewer (Fuslogvw.exe)

Le débogage du processus de chargement de ressources localisées représente l'un des aspects les plus complexes de l'utilisation de ces ressources. Lorsque vous utilisez ResourceManager, les demandes des ressources sont transmises au Common Language Runtime, qui est chargé de rechercher, charger et effectuer les liaisons à ces ressources. Dans votre code source, un seul appel pour charger une ressource peut exécuter plusieurs demandes de liaison au Common Language Runtime.

L'Assembly Binding Log Viewer (visionneuse du journal des liaisons d'assembly) aide à analyser le processus de chargement des ressources. Des informations détaillées sur les liaisons de ressources sont conservées à partir des URL par le composant WinInet de Windows. Malheureusement, lorsque WinInet retourne ces entrées, elles ne sont pas systématiquement classées dans l'ordre chronologique.

Par défaut, les appels de liaisons ne sont pas enregistrés dans le journal. Pour activer l'enregistrement, il est nécessaire de commencer par créer une valeur DWORD sous la clé HKLM\Software\Microsoft\Fusion, dans le Registre Windows. Le premier niveau d'enregistrement affiche uniquement les liaisons de ressources ayant échoué. Pour l'activer, vous devez créer une valeur LogResourceBinds DWORD et lui affecter une valeur autre que la valeur par défaut zéro.

Vous pouvez provoquer un échec de liaison de ressource dans l'application exemple en supprimant ou en attribuant simplement un nouveau nom à un assembly satellite de ressources approprié. Par exemple, si vous supprimez \en-US\Graphic.resources.dll et \en\Graphic.resources.dll, puis si vous exécutez l'exemple Graphic, FusLogVW affichera le journal montré dans la figure suivante :

Ces deux entrées de journal indiquent que le Common Language Runtime a d'abord tenté de localiser une ressource pour la culture en-US. Après avoir échoué, il a tenté de charger une ressource pour la culture en. Après avoir échoué une nouvelle fois, il a finalement chargé une ressource de l'assembly principal (ce qui n'a pas été enregistré, puisque le chargement a réussi).

Toutefois de nombreux développeurs souhaitent voir toutes les activités de liaison. Dans ce cas, il est nécessaire d'affecter à la valeur DWORD de ForceLog une valeur autre que la valeur par défaut zéro. À ce stade, des appels de liaisons ultérieurs, qui ont réussi et qui ont échoué, seront enregistrés. La figure suivante montre un journal typique :

Si vous sélectionnez l'une des liaisons de ressources (dans ce cas, pour Locale=en-US) et cliquez sur Afficher le journal, une fenêtre du navigateur s'ouvre et affiche un journal détaillé, comme le montre la figure suivante :

Cette entrée de journal spécifique indique que la ressource a été chargée avec succès après la première recherche du Common Language Runtime dans le cache de l'assembly global (GAC) et dans les sous-répertoires de l'application. Pour réduire le nombre de fichiers que le Common Language Runtime tente de charger et améliorer les performances, le Common Language Runtime tente uniquement de localiser les ressources dans les fichiers ayant l'extension .dll.