I have an MSI that I build dynamically with a WiX script that is being installed fine. However, the UninstallString consistently has a /I ("slash-eye") param to msiexec.exe which I would expect to be a /X. I read about the UninstallString here, and it says that this registry entry is set by the Windows Installer. What would I be passing to the Windows Installer either via WiX or the install command I issue that would cause an UninstallString to always have the /I ("slash-eye") param?
I broke down and spoke with MS support on this. The answer is to set the ARPNOMODIFY property in the MSI to 1 to generate an UninstallString that uses the /X parameter.
The /I param means that you have the "Change" and "Repair" options available in appwiz.cpl listing. Hope this helps someone else facing this issue.
The below MSDN articles describe the ARP properties in detail.
http://msdn.microsoft.com/en-us/library/windows/desktop/aa367590(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/aa367591(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/aa367592(v=vs.85).aspx