For a number of years I've been using a tool called Dependency Walker that
was bundled in with Visual Studio. A useful utility, it will show all the
dependencies of an executable, pretty handy when you're trying to get something
to run that won't - usually because of DLL hell.
Here is the display using our favorite exe:
As you can see, it shows the dll name, time stamp, file version, etc. For
trouble shooting I'd run this on a machine where it works, then run it on the
machine where it doesn't work, start comparing the two. Still a little tedious,
but you at least have a list to work from.
Recently I was working one of these issues I just could not figure out, so I
went next door to talk to my friend Leon,
got him to help me look. Turns out, he had a different version of Dependency
Walker! This much nicer version has some features, the most important being that
it can trace a running process to look for runtime dependencies.
If you use this, it will report any problems with any dll that the
application references. Sometimes the errors are false and/or not quite what
they seem - on the site listed below there is a list of the common problems
you'll see in the trace, read it before you start troubleshooting!
You can download the latest version from http://www.dependencywalker.com/.
You can also visit the authors home page at http://stevemiller.net/apps/.
Steve mentioned that the latest version would be in the VS.Net 2003 install and
on MSDN.
You may not run into dll issues often, but when you do, it's a handy tool to
have in the toolbox!