84

I'm currently having some assembly binding problems on our development server. I want to investigate the problem a bit further with Fusion Log Viewer. Since there is no Visual Studio installed on the machine, I copied FUSLOGVW.EXE to a local folder and started it there.

Is this supposed to work or does it need something else? I don't get the impression the application is logging any failures (and yes I have the settings right).

Gerrie Schenck
  • 22,148
  • 20
  • 68
  • 95

7 Answers7

48

As mentioned in an answer above and in comments, you need to do two things to get the fusion logger to run on a machine without Visual Studio:

  1. Copy fuslogvw.exe to that machine. You can find it wherever you installed .NET (eg. C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64\FUSLOGVW.exe)
  2. Copy flogvwrc.dll to the same location as fuslogvw.exe on that machine. You can find it in the 1033 subdirectory where fuslogvw.exe was (eg. C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64\1033\flogvwrc.dll)

Once you have fuslogvw.exe and flogvwrc.dll together in one directory, you can run the log viewer. You don't need registry changes or any other changes.

ashes999
  • 9,925
  • 16
  • 73
  • 124
  • Question: Wouldn't there be any copyright infringements if I copy these to a user machine? – sampathsris Feb 24 '17 at 13:07
  • @Krumia I'm not sure what you mean by copyright infringement. These files are freely available to anyone who downloads and installs .NET. – ashes999 Feb 24 '17 at 15:19
39

Fuslogvw doesn't do the logging. The fusion loader does that. Fuslogvw just displays the log output. Are you getting any logs at all in the output directory you have configured?

Oh, and it should work on a machine that does not have Visual Studio installed.

adrianbanks
  • 81,306
  • 22
  • 176
  • 206
  • No I don't get any output when I choose to log to disk. – Gerrie Schenck Jun 18 '09 at 12:14
  • 3
    Set an explicit custom log path and choose "log all binds to disk" in the settings dialog. The logs should end up there. If they are not appearing, check the permissions on the directory you have specified as the log path (and that it actually exists). – adrianbanks Jun 18 '09 at 12:17
  • 82
    copying `FUSLOGVW.EXE` to a machine with .NET 4.0 installed *without* Visual Studio **does not** work. You also need to copy the `flogvwrc.dll` in the `1033` folder under "Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\" – Brian Chavez Jun 01 '11 at 11:19
  • 2
    @BrianChavez Seems like this applies only to the .NET 4.0 version of the tool. The .NET 3.5 version of fuslogvw.exe runs without this .dll. – Ronald Zarīts Mar 01 '12 at 12:24
  • 4
    1. Create a new folder anywhere on a machine with .NET 4.0 installed 2. copy FUSLOGVW.EXE and flogvwrc.dll to that folder. 3. Launch Fuslogvw.exe. 4. Go to settings and enable all binds to disk 5. Close and Reopen 6. Set an explicit custom path. 7. Restart IIS if checking for a asp.net application – Sundara Prabu May 05 '14 at 12:16
  • See below from @ashes999, you just need the exe and its dll and they can go anywhere. SImple. – Bob Denny Jul 29 '19 at 23:25
33

Doing the above did not work for me..

I recommend doing the following instead:

In: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion

Add:

  • ForceLog set value to 1 (DWORD )
  • LogFailures set value to 1 (DWORD)
  • LogResourceBinds set value to 1 (DWORD)
  • LogPath (String) set value to folder for logs ie) C:\FusionLog\

Very straightforward.. and that worked for me! I use Windows 2012 R2.

Found this in: http://pauliom.com/2012/01/30/how-to-log-net-binding-errors-when-you-dont-have-fuslogvw-exe/

Thanks

xav
  • 812
  • 8
  • 9
6

I wrote an assembly binding log viewer named Fusion++ and put it on GitHub. It writes the registry keys you need to have to activate the logging on your machine and parses the logs afterwards so you don't have to go file hunting.

You can get the latest release from here or via chocolatey (choco install fusionplusplus).

I hope you and some of the visitors in here can save some worthy lifetime minutes with it.

Fusion++

Waescher
  • 5,361
  • 3
  • 34
  • 51
5

You also need to create a LogFailures key in HKLM\SOFTWARE\Microsoft\Fusion with a DWORD value of 1 to turn on the log. You should set this value back to 0 when not testing otherwise it will keep populating the log. Create a folder eg. C:\fuslog and refer to it in the Custom log path in Settings in the Assembly Binding Log Viewer.

ashes999
  • 9,925
  • 16
  • 73
  • 124
1

You might be using the wrong version of fuslogvw. check c:\program files\microsoft SDKs or c:\program files\Microsoft.net\SDK for a different version of the utility.

Dror Helper
  • 30,292
  • 15
  • 80
  • 129
  • I'm using the one from Visual Studio 2005 to check problems in 3.5 assemblies. I think this is correct? What else do you mean with versions? – Gerrie Schenck Jun 18 '09 at 12:14
0

it is essential that you turn of HKLM\SOFTWARE\Microsoft\Fusion to 0 because it makes your system visual studio and other stuff so slow, just because logging needs time as hundred of file handels open. I have seen entries and log files for programs I was never asking for a log!

Here I give you an example of what happens over time; I was not aware that fusion / fuslogvw logs all kind of events. That should be made cleare when the tools starts, that it continues to log and make your system slow, mainly if VS starts up with very large projects. I am thanksfull for this Information about how to turn it off. I will use it again when I need it because it is otherwhise an excellent tool. But in this regard this is just stupid. Josef

E:\Users\C770817\fuslogvw>tree
Folder PATH listing for volume LaCie
Volume serial number is B098-2591
E:.
├───Default
│   ├───4fe3a146
│   ├───6bf3b89
│   ├───758f6436
│   ├───92c7e946
│   ├───addinutil.exe
│   ├───aspnet_regiis.exe
│   ├───b210afcc
│   ├───CreateSchedulerFolder.exe
│   ├───dbb8b39f
│   ├───devenv.exe
│   ├───Duplicati.CommandLine.exe
│   ├───DuplicatiBgMgr.exe
│   ├───e04f35ff
│   ├───EA.exe
│   ├───edd6a3ed
│   ├───ElementsHelper.exe
│   ├───Eval32.exe
│   ├───EXCEL.EXE
│   ├───FxCopCmd.exe
│   ├───FX_{b05566ac-fe9c-4368-be02-7a4cbb7cbe11}
│   ├───FX_{b05566ad-fe9c-4363-be05-7a4cbb7cb510}
│   ├───FX_{b05566ae-fe9c-4363-be05-7a4cbb7cb510}
│   ├───FX_{c7b8fb06-bfe1-4c2e-9217-7a69a95bbac4}
│   ├───FX_{c7b8fb07-bfe1-4c2e-9217-7a69a95bbac4}
│   ├───FX_{d1764f60-2007-4ad4-a1e8-e7714ed4eb5d}
│   ├───GfxUIEx.exe
│   ├───InetMgr.exe
│   ├───InstallUtil.exe
│   ├───IntelliTrace.exe
│   ├───ISSDeployer.exe
│   ├───ISSLauncherTray.exe
│   ├───ISSShortcutManager.exe
│   ├───JabraCiscoJabberDriver.exe
│   ├───JabraDeviceService.exe
│   ├───LocalAccountMgmt.exe
│   ├───MFPPrinterTool.exe
│   ├───Microsoft.VisualStudio.Web.Host.exe
│   ├───mmc.exe
│   ├───MSBuild.exe
│   ├───mscorsvw.exe
│   ├───msdeploy.exe
│   ├───MsDepSvc.exe
│   ├───msvsmon.exe
│   ├───OxygeneRegClean2.exe
│   ├───OxygeneSchemaCatalog.exe
│   ├───pcee4.exe
│   ├───powershell.exe
│   ├───powershellcustomhost.exe
│   ├───RegisterEvent.exe
│   ├───RemObjects.Everwood.LicenseManager.exe
│   ├───sdiagnhost.exe
│   ├───SmsClrHost.exe
│   ├───SMSvcHost.exe
│   ├───Spezpla.exe
│   ├───Spezpla.vshost.exe
│   ├───sqlservr.exe
│   ├───SvcConfigEditor.exe
│   ├───Toolbox2Test.exe
│   ├───TrayCtrlNotify.exe
│   ├───UITServ.exe
│   ├───UserGUI.exe
│   ├───UserInstallTool.exe
│   ├───VideoHost.exe
│   ├───VS2012.4.exe
│   ├───VSIXInstaller.exe
│   ├───vssphost4.exe
│   ├───w3wp.exe
│   ├───WCFSpezplaServiceClient.exe
│   ├───WCFSpezplaServiceClient.vshost.exe
│   ├───WcfSvcHost.exe
│   ├───WebBrowserServer.exe
│   ├───WebDev.WebServer40.exe
│   ├───WebPlatformInstaller.exe
│   ├───WINPROJ.EXE
│   └───wsmprovhost.exe
└───NativeImage
    ├───4fe3a146
    ├───6bf3b89
    ├───758f6436
    ├───92c7e946
    ├───addinutil.exe
    ├───aspnet_regiis.exe
    ├───b210afcc
    ├───CreateSchedulerFolder.exe
    ├───dbb8b39f
    ├───devenv.exe
    ├───Duplicati.CommandLine.exe
    ├───DuplicatiBgMgr.exe
    ├───e04f35ff
    ├───EA.exe
    ├───edd6a3ed
    ├───ElementsHelper.exe
    ├───Eval32.exe
    ├───EXCEL.EXE
    ├───FxCopCmd.exe
    ├───FX_{b05566ac-fe9c-4368-be02-7a4cbb7cbe11}
    ├───FX_{b05566ad-fe9c-4363-be05-7a4cbb7cb510}
    ├───FX_{b05566ae-fe9c-4363-be05-7a4cbb7cb510}
    ├───FX_{c7b8fb06-bfe1-4c2e-9217-7a69a95bbac4}
    ├───FX_{c7b8fb07-bfe1-4c2e-9217-7a69a95bbac4}
    ├───FX_{d1764f60-2007-4ad4-a1e8-e7714ed4eb5d}
    ├───GfxUIEx.exe
    ├───InetMgr.exe
    ├───InstallUtil.exe
    ├───IntelliTrace.exe
    ├───ISSDeployer.exe
    ├───ISSLauncherTray.exe
    ├───ISSShortcutManager.exe
    ├───JabraCiscoJabberDriver.exe
    ├───JabraDeviceService.exe
    ├───LocalAccountMgmt.exe
    ├───MFPPrinterTool.exe
    ├───Microsoft.VisualStudio.Web.Host.exe
    ├───mmc.exe
    ├───MSBuild.exe
    ├───mscorsvw.exe
    ├───msdeploy.exe
    ├───MsDepSvc.exe
    ├───msvsmon.exe
    ├───OxygeneRegClean2.exe
    ├───OxygeneSchemaCatalog.exe
    ├───pcee4.exe
    ├───powershell.exe
    ├───powershellcustomhost.exe
    ├───RegisterEvent.exe
    ├───RemObjects.Everwood.LicenseManager.exe
    ├───sdiagnhost.exe
    ├───SmsClrHost.exe
    ├───SMSvcHost.exe
    ├───Spezpla.exe
    ├───Spezpla.vshost.exe
    ├───SpezplaPlanTest.exe
    ├───sqlservr.exe
    ├───SvcConfigEditor.exe
    ├───Toolbox2Test.exe
    ├───TrayCtrlNotify.exe
    ├───UITServ.exe
    ├───UserGUI.exe
    ├───UserInstallTool.exe
    ├───VideoHost.exe
    ├───VS2012.4.exe
    ├───VSIXInstaller.exe
    ├───vssphost4.exe
    ├───w3wp.exe
    ├───WCFSpezplaServiceClient.exe
    ├───WCFSpezplaServiceClient.vshost.exe
    ├───WcfSvcHost.exe
    ├───WebBrowserServer.exe
    ├───WebDev.WebServer40.exe
    ├───WebPlatformInstaller.exe
    ├───WINPROJ.EXE
    └───wsmprovhost.exe

E:\Users\C770817\fuslogvw>
E:\Users\C770817\fuslogvw>tree > x.txt

E:\Users\C770817\fuslogvw>
  • Just for info - this is achievable through the FUSLOGVW.exe UI by going into "Settings" and selecting "Log disabled" (no regedit-ing required) – Duncan Howe Mar 05 '15 at 15:37