I have an application that I am creating a innosetup install (setup.exe) for. 20 COM dlls register fine. I have one that does not.
regsvr32 (running as an admin) reports an 0x3 error. But How do I find out which DLL is missing? I have another computer where regsvr does work! (both are win7 64 bit computers, pretty much identical).
I have run DEPENDENCY-WALKER.exe on the DLL (vpfmap.dll) and I looked at all the dependencies.
As far as I can tell they should be all on that computer (c:\windows (many dlls) and then 8 others that I have copied to the target folder on the target computer.
I see no errors in the Event log.
What I want is how to figure out what is missing?
With dependency walker, if you are scanning a 64-bit file, make sure you are using the 64-bit version of dependency walker. Otherwise, the results are not what you expect.
Another tip: Try to register the DLL, and then check the Application event log. Often, the event log will have more detail, including filenames of missing files.
If this is a side-by-side dependency issue, the tool sxstrace.exe may tell you what is missing. This file is installed with Windows 7. http://technet.microsoft.com/en-us/library/hh875651%28v=ws.10%29.aspx
run
sxstrace TRACE -logfile:tracelog.etl
then try to register your file.
After stopping tracing, you need to PARSE the log to get a human readable version of it.
sxstrace PARSE -logfile:tracelog.etl -outfile:tracelog.txt