Diagnose Assembly Loading Failures

Majority of the time, you can use fuslogvw.exe to find out why an assembly load failed.

There are times when fusion binding log tells you that the assembly is found successfully, but you still get an FileLoadException.

One of the common case is that one of the unmanaged dlls the assembly depends on cannot be found. After fusion finds the assembly, CLR Loader will try to call LoadLibrary on the assembly to load it. If one of the unmanaged dlls cannot be found, LoadLibrary will fail, and you will receive the FileLoadException.

If that happens, use depends.exe to find out which unmanaged dll is missing. And put it somewhere the OS can find it.