There have been times where a program failed to load due to missing dependencies or side-by-side inconsistencies. One of the tool available on Windows Vista is "sxstrace.exe" (normally located in \Windows\System32). sxstrace.exe can help you pin-point which dependent assembly is expected and is not found. Use sxstrace.exe /? to get the full options.

Example usage:

  • Before running the program that failed to start, in a CMD window, run sxstrace in trace mode
    • sxstrace.exe  Trace  -logfile:C:\tmp\MySxSTrace.log
  • In another CMD window, run the program that failed to start. Wait until it errors out.
  • Back on the first CMD window, stop the trace and convert the log
    • sxstrace.exe  Parse  -logfile:C:\tmp\MySxSTrace.log  -outfile:C:\tmp\MySxSTrace.txt
  • You can then look at the parsed log in MySxSTrace.txt. It will be quite obvious which assembly the failed program was looking for and the various locations that were tried.

If you are not on Windows Vista, filemon or procmon can be used to help track down the offending assembly.

Hope that helps.