Abbiamo un programma di installazione del prodotto creato con Wix, contenente un pacchetto di programma ("V1") e alcuni file di configurazione. Ora, effettueremo un importante aggiornamento con un nuovo codice prodotto, in cui è stata disinstallata la vecchia versione del prodotto e "V2" è installato. Quello che vogliamo è salvare uno dei file di configurazione dalla disinstallazione, poiché è necessario anche per il V2. Purtroppo, abbiamo dimenticato di impostare l'opzione Permanent="yes"
quando abbiamo consegnato V1 (read this question per ulteriori informazioni).WiX, come impedire la disinstallazione dei file anche se ci siamo dimenticati di impostare Permanent = "yes"
Ecco la domanda: c'è un modo semplice per impedire la disinstallazione del file in ogni caso? Naturalmente, potremmo aggiungere un'azione personalizzata allo script per eseguire il backup del file prima della disinstallazione e un'altra azione personalizzata per ripristinarla in seguito, ma IMHO sembra essere eccessivo per questa attività e potrebbe interferire con altre parti del processo di registrazione MSI .
EDIT: E sì, l'attributo NeverOverwrite="yes"
è già impostato in V2 e il comportamento è come l'ho descritto.
Non penso che possa aiutare a modificare qualcosa direttamente nei parametri del componente di V2. Forse c'è la possibilità di modificare il registro in qualche modo in un'azione personalizzata prima di disinstallare V1 in modo che il servizio di installazione pensi che il file di configurazione in V1 sia stato installato con Permanent="yes"
?
Non riesci a reinstallare quei file, o è necessario conservare il file locale perché potrebbero essere stati modificati? –
Questo è esattamente il caso: il file di configurazione potrebbe essere stato modificato e dovrebbe essere mantenuto così com'è. –