Realize this issue has some years by now, but I suppose people like me still get into this problem still. Sumeet mentions in a comment to the accepted solution that the user is still able to get to the screen with both options, "Repair" and "Remove", shown.
There seems in fact to the three different ways a user may be able to access the installer for an application.
One:
As already answered ARPNOMODIFY and ARPNOREPAIR fixes the issue in Add Remove Program only, can be done with "Orca.exe".
Two:
By right-clicking the installer for the msi. Sadly this is the one spot where there seem to be no way of avoiding both options without making adjustments computer-wide for all msi files.
Three:
By double-clicking the installer, if already installed, there is a screen with the radio buttons "Repair" and "Remove".
Found this neat adaption below for solving the third point of access, somewhat rewritten, here: http://us.generation-nt.com/there-way-disable-remove-repair-option-through-orca-project-properties-help-49010162.html. It graphically removes the choice of permitting the repair option. My thanks goes to by Paul Brun for this one.
- Open up the msi-file with Orca.exe.
- Go into the table 'Property'.
- Add the key 'ARPNOMODIFY' with value
1
.
- Add the key 'ARPNOREPAIR' with value
1
.
- Change the value of the property 'MaintenanceForm_Action' from
Repair
to Remove
.
- Go into table 'Control'.
- Find the entry with Dialog_ 'MaintenanceForm' and Control 'BodyText'.
- Change the 'Text' property to this:
{\VSI_MS_Sans_Serif13.0_0_0}Select "Finish" to remove [ProductName]
- Find the entry with Dialog_ 'MaintenanceForm' and Control 'RepairRadioGroup'.
- Change the 'Control_Next' property from
CancelButton
to FinishButton
.
- Find and remove the entry with Dialog_ 'MaintenanceForm' and Control 'RepairRadioGroup'.
Related with doing the steps above might be to automate the process of adapting the msi with a transform gotten from doing the steps only one time. More information on how to do that can be found here: Use Orca to edit msi from command line?