Sometimes it’s very useful analyze how an application binds to referenced assemblies but this process is fairly hidden from us. However, Microsoft has given us a way to look into this process via the fuslogvw tool. This tool is not overly documented so this post describes how to install it on a computer that has neither Visual Studio nor the Windows SDK installed, such as a server.
Follow these steps:
Copy the following files from a computer with Visual Studio or the Windows SDK installed:
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\FUSLOGVW.exe"
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\1033\flogvwrc.dll"
Put them into a folder on the target computer.
Create logging folder, e.g. c:\fuslog
Start FUSLOGVW.exe
. Update the following settings:
- Log all binds to disk
- Enable Custom log path
- Custom log path =
c:\fuslog\
Finally, enable assembly binding logging in the registry by setting the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion\ForceLog
value to 1
.
Click Refresh in FUSLOGVW.exe and behold! A list of assembly binding events are displayed:
The individual events contain useful details:
/Emil
2014-11-10 Update: Removed the mention of editing the registry. I added that a little too quickly, fuslogvw.exe is supposed to do that stuff for us…
Thanks for the info! Slight edit…
Finally, enable assembly binding logging in the registry by setting the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion\ForceLog to 1.
Thanks for pointing this out, @vitaminjeff ! Post updated accordingly.
A screenshot of the regedit would be really nice.
If you are invoking a process on a server using a client and teh server is throwing errors about DLLs, how do you configure fusLogVw to capture the error?
Thanks.
@RT2014, I actually removed that part again after having a second look at the post. Editing the registry should not be needed, that’s why we’re using fuslogvw.exe for 🙂
If you really want to do it manually, browse to the Fusion key and and add a DWORD value called ForceLog and give it a value of 1.
You might want to have a look at https://github.com/awaescher/Fusion, an modern OSS alternative to the Microsoft Assembly Binding Log Viewer.