Я считаю, что WIX больше подходит для ваших требований, когда вы имеете больший контроль над установщиком.
Если вы хотите, чтобы ваше приложение удалялось только из приложения, вы, вероятно, можете добавить пользовательское действие (илиУсловие) в вашем установщике, который проверяет, было ли запущено действие установщика (Восстановить / Удалить) из вашего приложения, а не из ARP.
Один из способов - передать пользовательское свойство из вашего приложения в тестируемый msiexecв вашем пользовательском действии (или Условии) и не позволяет процессу установки продолжаться, если выполняется без установки этого свойства.