View Single Post
Old 4th May 2012, 21:38   #3
Junior Member
Join Date: May 2012
Posts: 6
Thanks for your reply MSG.
I added the code you suggested and confirmed that the NSIS installer does have admin privs on the "broken" machine.

I have two datapoints that exhibited this type of failure. On the first machine, after the NSIS-based DX install failed, we ran the same DX installer manually by double-clicking it directly. That succeeded. Unfortunately once it succeeds it will never fail again, as the DX redist cannot be uninstalled... So that test case is now gone.
Now I have one machine left that still fails. I am afraid to try installing DX manually, because if that succeeds, then that test case will be gone as well.

The DXError.log file on the second system contains just these two entries:

[04/24/12 11:33:22] module: dsetup32(Apr 4 2007), file: dsinline.h, line: 302, function: DXRemoveFile

Unable to remove C:\Users\I7\AppData\Local\Temp\DXAA35.tmp.

[04/24/12 11:33:22] module: dsetup32(Apr 4 2007), file: inline.h, line: 220, function: CleanUpDirectory

Unable to remove: C:\Users\I7\AppData\Local\Temp\DXAA35.tmp\infinst.exe which is locked, reason = 32.

"unable to remove" smells like a permissions issue. but note that hte installer failed severl more times without producing any other error messages, so these errors might be a red herring.

We've run the NSIS installer four or five times on the broken machine, and each time it invoked the DX installer, and each time the DX installer failed.
The first three times we got the "An internal error has occurred. please see the log files" dialog. Each time the DX installer did some work before failing, because more and more of the dll's that it is supposed to install were appearing on the user's system. But the DX logs were not updated properly at all. I can see a dozen or so dll's that were clearly added, but which do not show up in the system's DirectX.log.
When we repeated the test yesterday, the DX installer simply hung. No progress for 15 minutes before we killed it.

I'm at my wits end. Any suggestions or ideas that anyone has, please send 'em along, I'm open to trying them.

One other idea: Is it possible that the CWD could have been messed up when we call ExeWait? When I launch an exe by calling ExeWait form an NSIS script, what CWD does that exe receive?
chief-pinhead is offline   Reply With Quote