InstallShield2010 Modifiche ai file XML su Modifica e disinstallazione
-
26-10-2019 - |
Domanda
devo il mio successo proof of concept MSI installer creazione di un file XML, e aggiornamento degli elementi come vorrei su una nuova installazione. Ho 6 funzioni, se la funzione è selezionata per essere installato Voglio un nodo creata per tale funzione e di un set di attributi in base a una proprietà.
Se modifico l'installazione e la rimozione di una caratteristica precedentemente installato, voglio che il nodo XML creati per poter persistere e desidero impostare l'I set di attributi su installa per essere aggiornato sulla base della stessa proprietà (che ora ha un valore diverso).
E 'possibile sfruttare le funzionalità esistenti di InstallShield per fare questo? Sembra che potevo, e evitare di scrivere un'azione personalizzata per aggiornare il mio xml durante la rimozione di una caratteristica. Non sembra essere molta documentazione sulle azioni isxmlcfg.dll e personalizzati in esso.
CA ISXmlUnInstall è in esecuzione quando rimuovo una caratteristica - ma sembra tutto che l'azione non fa altro che rimuovere il nodo o lasciare ...
Soluzione
Il problema che si sta probabilmente verificato è il fatto che, anche se si è utilizzato la struttura in qualcosa (diciamo registery, ini o xml) di Windows Installer non nativamente persistono immobili a suo database. Devi fare la tua auto. Quindi, se si vuole fare una riparazione, il cambiamento, l'aggiornamento o qualsiasi altra cosa e si desidera avere che i dati di proprietà stessi, non solo è necessario salvarlo in qualcosa (ad esempio XML), ma bisogna anche avere un corrosponding AppSearch (XmlSearch) che può tirare indietro nella proprietà quindi ha un valore da visualizzare durante l'interfaccia utente e la scrittura o indietro per XML in seguito.
Considera anche sostenere un modello in cui si ottiene di leggere in una proprietà temp e assegnato alla proprietà reale solo se la proprietà reale non dispone già di un valore. In questo modo qualcuno potrebbe fare un'installazione invisibile all'utente (upgrade) e passare la proprietà come una sostituzione per ciò che è stato configurato in precedenza. (No clobbering dalla ricerca)