Progetto di distribuzione .NET: azione personalizzata che annulla il programma di disinstallazione
-
22-07-2019 - |
Domanda
Ho un progetto di distribuzione .NET. Vorrei aggiungere un'azione di disinstallazione personalizzata che controlla determinate condizioni e facoltativamente annulla la disinstallazione. È possibile?
Per quanto ho capito, è possibile solo definire azioni personalizzate che non possono influenzare il programma di installazione principale stesso.
Soluzione
La risposta è in realtà abbastanza semplice ma anche piuttosto brutta.
Nel punto dell'azione personalizzata in cui desidero annullare la disinstallazione, lancio semplicemente un ApplicationException
:
//Nono. Don't uninstall. To abort uninstall, throw an exception
throw new ApplicationException(Constants.CONST_APP_NAME + @" can't be uninstalled because the preparation hasn't been completed.");
Altri suggerimenti
Mi sorprenderebbe se fosse possibile. Nella mia esperienza, non appena provi a utilizzare il progetto di installazione VS per fare qualcosa che non può essere trascinato e trascinato nel designer, stai chiedendo problemi.
In altre parole, fa schifo, ma non so se l'erba è più verde dall'altra parte (ad esempio InstallShield), perché non l'ho mai usato.