When we run the built installer for the first time, everything in our application works; the C++ executables use the redistributable (already installed), and run properly.
When we then uninstall, it seemingly works, removing all the software, and the entry under Programs and Features under Control panel, and leaving a prerequisite (and preinstalled) redistributable in place.
However, when we rerun the same installer a second time, the executables for the reinstalled software then fail, getting the following example error:
Code: Select all
Faulting application name: myapp.exe, version: 11.8.0.178, time stamp: 0x689b9d86
Faulting module name: MSVCR90.dll, version: 9.0.30729.9635, time stamp: 0x6090b812
Exception code: 0x40000015
Fault offset: 0x0005beae
Faulting process id: 0x1c84
Faulting application start time: 0x01dc10b9b5e06f92
Faulting application path: C:\Program Files (x86)\Parlance\NCS_11.8\bin\TRunCtrl.exe
Faulting module path: C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.9635_none_508ff82ebcbafee0\MSVCR90.dll
Report Id: ea94c655-23a5-457c-865e-9127f14512e7
Faulting package full name:
Faulting package-relative application ID:
At this point, the system is in an unrecoverable state until you run the MicrosoftProgram_Install_and_Uninstall.meta.diagcab tool to remove the broken install; even a reboot does not fix it.
However, once the Microsoft tool has finished "cleaning up the mess", the system is restored to a good state, and a 3rd install of the same installer works again, without any modification to the prerequisite redistributable.
To try to diagnose this, I have:
- Run sxstrace with the executable in a working and non-working state and compared the traces; they are identical.
- Inserted reboots at various points in this process; they make no difference.
- I have run Regshot to do comparisons between the state after the first install and first uninstall, and between the second (broken) install and running the Microsoft uninstall cleanup tool; each of these produced 40K plus line files, which I can attach if desired.
- Removed the redistributable prerequisite from the installer entirely, as a divide and conquer step, and just made sure that it was installed on the target computer in advance; this did not affect the behavior.
At this point, I have no idea what else to try. The ability to install, uninstall, and reinstall is essential for our QA department to be able to do, and I have exhausted everything I can think of to try to fix this.
Please help!