I have two Wix projects - one that creates the MSI and the other that bootstraps it into an exe.
Using the exe, I can install the application with no issues, but when I try to uninstall the application, I get my installer's setup menu again and it attempts to install itself again.
If I cancel the re-install, and attempt to uninstall again, it works as expected.
If I perform the same workflow with the msi, it works as expected.
Here's what my bootstrapper looks like:
<Bundle Name="name" Version="2.0.0.0" Manufacturer="company" UpgradeCode="guid" IconSourceFile="icon.ico" DisableModify="yes">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense">
<bal:WixStandardBootstrapperApplication LicenseFile="license.rtf" SuppressOptionsUI="yes" SuppressRepair="yes" />
</BootstrapperApplicationRef>
<Chain>
<MsiPackage SourceFile="application.msi" DisplayInternalUI="yes" EnableFeatureSelection="yes"/>
</Chain>
</Bundle>
Any ideas?
Update
As per suggestions, I've modified my bundle to the following (set EnableFeatureSelection to no), but it's still showing the same behavior.
<Bundle Name="name" Version="2.0.0.0" Manufacturer="company" UpgradeCode="guid" IconSourceFile="icon.ico" DisableModify="yes">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense">
<bal:WixStandardBootstrapperApplication LicenseFile="license.rtf" SuppressOptionsUI="yes" SuppressRepair="yes" />
</BootstrapperApplicationRef>
<Chain>
<MsiPackage SourceFile="application.msi" DisplayInternalUI="yes" EnableFeatureSelection="no"/>
</Chain>
</Bundle>
Update #2
I noticed that when I uninstall for the first time and it launches the install setup, if I cancel the setup, it fails, but it has already removed all the files and registry keys. Running the uninstall the second time removes the entry from the Add/Remove programs (successfully).
Update #3
Here's the UI sequence for the msi
<UI>
<DialogRef Id="WelcomeDlg"/>
<DialogRef Id="LicenseAgreementDlg"/>
<DialogRef Id="VerifyReadyDlg"/>
<DialogRef Id="ErrorDlg" />
<DialogRef Id="FatalError" />
<DialogRef Id="FilesInUse" />
<DialogRef Id="UserExit" />
<DialogRef Id="SelectDbDlg" />
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="LicenseAgreementDlg"></Publish>
<Publish Dialog="LicenseAgreementDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">NOT Installed</Publish>
<Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="SelectDbDlg">NOT Installed</Publish>
<Publish Dialog="SelectDbDlg" Control="Back" Event="NewDialog" Value="LicenseAgreementDlg">NOT Installed</Publish>
<Publish Dialog="SelectDbDlg" Control="Next" Event="NewDialog" Value="DbCreateCredDlg">NOT Installed</Publish>
<Publish Dialog="DbCreateCredDlg" Control="Back" Event="NewDialog" Value="SelectDbDlg">NOT Installed</Publish>
<Publish Dialog="DbCreateCredDlg" Control="Next" Event="NewDialog" Value="SetupTypeDlg">NOT Installed</Publish>
<Publish Dialog="SetupTypeDlg" Control="Back" Event="NewDialog" Value="DbCreateCredDlg">NOT Installed</Publish>
<Publish Dialog="SetupTypeDlg" Control="Next" Event="NewDialog" Value="FeaturesDlg">NOT Installed</Publish>
<Publish Dialog="SetupTypeDlg" Control="CustomButton" Event="NewDialog" Value="FeaturesDlg">NOT Installed</Publish>
<Publish Dialog="SetupTypeDlg" Control="TypicalButton" Event="NewDialog" Value="VerifyReadyDlg">NOT Installed</Publish>
<Publish Dialog="SetupTypeDlg" Control="CompleteButton" Event="NewDialog" Value="VerifyReadyDlg">NOT Installed</Publish>
<Publish Dialog="FeaturesDlg" Control="Back" Event="NewDialog" Value="SetupTypeDlg">NOT Installed</Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="SetupTypeDlg">NOT Installed</Publish>
<Publish Dialog="ExitDialog" Control="Back" Event="EndDialog" Value="VerifyReadyDlg">1</Publish>
<Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
</UI>