Fuslogvw.exe (アセンブリ バインディング ログ ビューアー)Fuslogvw.exe (Assembly Binding Log Viewer)

アセンブリ バインディング ログ ビューアーは、アセンブリ バインドの詳細を表示します。The Assembly Binding Log Viewer displays details for assembly binds. この情報は、.NET Framework が実行時にアセンブリを見つけられない原因を診断する場合に役立ちます。This information helps you diagnose why the .NET Framework cannot locate an assembly at run time. 通常、このようなエラーは、アセンブリが間違った位置に配置されているか、無効になったネイティブ イメージが存在するか、バージョン番号またはカルチャの不一致が存在する場合に発生します。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. 通常、共通言語ランタイムによるアセンブリ検出エラーは、アプリケーション内で TypeLoadException として示されます。The common language runtime's failure to locate an assembly typically shows up as a TypeLoadException in your application.

重要

fuslogvw.exe は、管理者特権で実行する必要があります。You must run fuslogvw.exe with administrator privileges.

このツールは、Visual Studio と共に自動的にインストールされます。This tool is automatically installed with Visual Studio. このツールを実行するには、管理者の資格情報で開発者コマンド プロンプト (または、Windows 7 の Visual Studio コマンド プロンプト) を使用します。To run the tool, use the Developer Command Prompt (or the Visual Studio Command Prompt in Windows 7) with administrator credentials. 詳細については、「Visual Studio 用開発者コマンド プロンプト」を参照してください。For more information, see Command Prompts.

コマンド プロンプトに次のように入力します。At the command prompt, type the following:

fuslogvw  

ビューアーには、失敗したアセンブリ バインドごとに 1 つのエントリが表示されます。The viewer displays an entry for each failed assembly bind. バインドを開始したアプリケーション、バインドの対象となるアセンブリ (名前、バージョン、カルチャ、公開キーなど)、およびエラーの日時の情報が、エラーごとにビューアーに表示されます。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.

ログ位置ビューを変更するにはTo change the log location view

  1. [Default] を選択すると、すべてのアプリケーションの種類のバインド エラーが表示されます。Select the Default option button to view bind failures for all application types. 既定では、ログ エントリは wininet キャッシュのディスクのユーザーごとのディレクトリに格納されます。By default, log entries are stored in per-user directories on disk in the wininet cache.

  2. [Custom] を選択すると、指定したカスタム ディレクトリのバインド エラーが表示されます。Select the Custom option button to view bind failures in a custom directory that you specify. [ログ設定] ダイアログの [カスタム ログのパス を使用して、ランタイムがログを格納するカスタムの場所を有効なディレクトリ名に指定する必要があります。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. このディレクトリはクリーンで、ランタイムが生成するファイルだけが含まれている必要があります。This directory should be clean, and only contain files that the runtime generates. このディレクトリに、ログに記録するエラーを生成する実行可能ファイルが含まれている場合は、その実行可能ファイルと同じ名前でディレクトリの作成が試行されるため、そのエラーはログに記録されません。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. また、ログの位置から実行可能ファイルを実行しようとすると、失敗します。In addition, an attempt to run an executable from the log location will fail.

    注意

    カスタム バインド位置ではなく、既定のバインド位置を使用することをお勧めします。The default bind location is preferable to the custom bind location. ランタイムは wininet キャッシュに既定のバインド位置を格納するので、この位置は自動的に消去されます。カスタム バインド位置を指定する場合は、この位置を削除する手段を独自に組み込む必要があります。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.

特定のエラーの詳細を表示するにはTo view details about a specific failure

  1. ビューアーにエントリを表示するアプリケーション名を選択します。Select the application name of the desired entry in the viewer.

  2. [View Log] をクリックします。Click the View Log button. また、選択したエントリをダブルクリックすることもできます。Alternately, you can double-click the selected entry.

    選択したバインド エラーについて、次の詳細が表示されます。The tool displays the following details about the selected bind failure:

    • "ファイルが見つからない" や "バージョンの不一致" など、バインド エラーの具体的な原因。The specific reason the bind failed, such as "file not found" or "version mismatch".

    • バインドを開始したアプリケーションについての情報 (アプリケーション名、アプリケーションのルート ディレクトリ (AppBase)、プライベート検索パスが存在する場合にはそのパスなど)。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.

    • 検索対象となるアセンブリの ID。The identity of the assembly the tool is looking for.

    • Application、Publisher、または Administrator バージョンのポリシーが適用されている場合は、その説明。A description of any Application, Publisher, or Administrator version policies that have been applied.

    • グローバル アセンブリ キャッシュでのアセンブリの検出の有無。Whether the assembly was found in the global assembly cache.

    • すべてのプローブ URL の一覧。A list of all probing URLs.

失敗したアセンブリ バインドについての詳細情報を表示するサンプル ログ エントリを次に示します。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.  

ログから単一のエントリを削除するにはTo delete a single entry from the log

  1. ビューアーでエントリを選択します。Select an entry in the viewer.

  2. [Delete Entry] をクリックします。Click the Delete Entry button.

ログからすべてのエントリを削除するにはTo delete all entries from the log

  • [Delete All] をクリックします。Click the Delete All button.

ユーザー インターフェイスに最新の情報を表示するにはTo refresh the user interface

  • [最新の情報に更新] をクリックします。Click the Refresh button. ビューアーの実行中に新しいログ エントリが自動的に検出されることはありません。The viewer does not automatically detect new log entries while it is running. 新しいログ エントリを表示するには、[Refresh] を使用する必要があります。You must use the Refresh button to display them.

ログ設定を変更するには、次の処理手順に従います。To change the log settings

  • [設定] をクリックして [ログ設定] ダイアログ ボックスを表示します。Click the Settings button to open the Log Settings dialog.

[バージョン情報] ダイアログを表示するにはTo view the About dialog

  • [バージョン情報] をクリックします。Click the About button.

ネイティブ イメージのバインディング ログBinding Logs for Native Images

既定では、Fuslogvw.exe は通常のアセンブリ バインド要求をログに記録します。By default, Fuslogvw.exe logs normal assembly bind requests. 代わりに、ネイティブ イメージ ジェネレーター (Ngen.exe) を使用して作成されたネイティブ イメージのアセンブリ バインドをログに記録することもできます。Alternatively, you can log assembly binds for native images that were created using the Ngen.exe (Native Image Generator).

ネイティブ イメージのアセンブリ バインドをログに記録するにはTo log assembly binds for native images

  • [ログのカテゴリ] グループで、[ネイティブ イメージ] をクリックします。In the Log Categories group, select the Native Images option button.

次のログは、アプリケーションのネイティブ イメージの作成時には存在しなかった依存関係が原因で発生したエラーを示しています。The following log shows a failure caused by a dependency that did not exist when the native image was created for the application. 実行時の依存関係が Ngen.exe を実行したときの依存関係と異なる場合、ネイティブ イメージへのバインドはできません。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.  

次のログは、アプリケーションが実行されたときのコンピューターのセキュリティ設定が、ネイティブ イメージの作成時のセキュリティ設定と異なるために発生したネイティブ イメージのバインディング エラーを示しています。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.  

[ログ設定] ダイアログThe Log Settings Dialog

[ログ設定] ダイアログを使用すると、次のようなアクションを実行できます。You can use the Log Settings dialog to perform the following actions.

ログを無効にするにはTo disable logging

  • [ログを無効にする] をクリックします。Select the Log disabled option button. このオプションの既定値はオンです。Note that this option is selected by default.

アセンブリ バインドの例外をログに記録するにはTo log assembly binds in exceptions

  • [例外テキストに記録する] をクリックします。Select the Log in exception text option button. 詳細度が最も低い fusion ログ情報だけが例外テキストに記録されます。Only the least detailed fusion log information is logged in exception text. 完全な情報を表示するには、その他の設定のいずれかを使用します。To view full information, use one of the other settings.

    ドメインに中立的に読み込まれたアセンブリに関する「重要」メモを参照してください。See the Important note regarding assemblies that are loaded as domain neutral.

アセンブリ バインドの失敗をログに記録するにはTo log assembly bind failures

  • [バインドの失敗をディスクに記録する] をクリックします。Select the Log bind failures to disk option button.

    ドメインに中立的に読み込まれたアセンブリに関する「重要」メモを参照してください。See the Important note regarding assemblies that are loaded as domain neutral.

すべてのアセンブリ バインドをログに記録するにはTo log all assembly binds

  • [すべてのバインドをディスクに記録する] をクリックします。Select the Log all binds to disk option button.

    ドメインに中立的に読み込まれたアセンブリに関する「重要」メモを参照してください。See the Important note regarding assemblies that are loaded as domain neutral.

重要

アセンブリがドメインに中立的に読み込まれた場合 (LoaderOptimization プロパティを LoaderOptimization.MultiDomain または LoaderOptimization.MultiDomainHost に設定した場合など)、ログが有効になっているとメモリがリークすることがあります。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. これが起こるのは、ドメインに中立的なモジュールがアプリケーション ドメインに読み込まれているときにログ エントリが作成され、その後でアプリケーション ドメインがアンロードされた場合です。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. このログ エントリは、プロセスが終了するまで解放されません。The log entry might not be released until the process ends. 一部のデバッガーは、自動的にログを有効にします。Some debuggers automatically turn on logging.

カスタムのログ パスを有効にするにはTo enable a custom log path

  1. [カスタム ログを有効にする] をクリックします。Select the Enable custom log path option button.

  2. [カスタム ログのパス] テキスト ボックスにパスを入力します。Enter the path into the Custom log path text box.

注意

アセンブリ バインディング ログ ビューアー (Fuslogvw.exe) では、バインディング ログの格納に Internet Explorer (IE) のキャッシュを使用します。The Assembly Binding Log Viewer (Fuslogvw.exe) uses the Internet Explorer (IE) cache to store its binding log. IE キャッシュは時折破損することがあるため、アセンブリ バインディング ログ ビューアー (Fuslogvw.exe) の表示ウィンドウに新しいバインディング ログが表示されなくなることがあります。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. IE キャッシュが破損した場合、.NET バインディング インフラストラクチャ (fusion) ではバインディング ログの読み書きができなくなりますAs a result of this corruption, the .NET binding infrastructure (fusion) cannot write to or read from the binding log. (この問題はカスタム ログ パスを使用している場合は発生しません)。破損を修復し、fusion でバインディング ログが再度表示されるようにするには、IE の [インターネット オプション] ダイアログで一時インターネット ファイルを削除して IE キャッシュを消去します。(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.

アンマネージ アプリケーションが、IHostAssemblyManager インターフェイスと IHostAssemblyStore インターフェイスを実装して共通言語ランタイムをホストしている場合、ログ エントリを 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. これらのインターフェイスを実装したカスタム ホストのログ エントリを表示するには、別のログ パスを指定する必要があります。To view log entries for custom hosts that implement these interfaces, you must specify an alternate log path.

Windows アプリ コンテナー内で実行するアプリに対してログを有効にするにはTo enable logging for apps running in the Windows app container

  1. 前の手順に従って、カスタム ログのパスを有効にします。Enable a custom log path, as described in the previous procedure. 既定では、Windows アプリ コンテナー内で実行しているアプリでは、ハード ディスクへのアクセスが制限されます。By default, apps that are running in the Windows app container have limited access to the hard disk. 指定するディレクトリでは、アプリ コンテナー内のすべてのアプリに対する読み取り/書き込みアクセスが与えられます。The directory you specify will have read/write access for all apps in the app container.

  2. [没入型のログを有効にします] チェック ボックスをオンにします。Select the Enable immersive logging check box.

    注意

    このチェック ボックスは、Windows 8 以降でのみ有効になります。This box is enabled only on Windows 8 or later.

参照See Also

TypeLoadException
ツールTools
グローバル アセンブリ キャッシュGlobal Assembly Cache
ランタイムがアセンブリを検索する方法How the Runtime Locates Assemblies
Visual Studio 用開発者コマンド プロンプトCommand Prompts