Azioni MSI condizioni di avvio personalizzate
-
09-09-2019 - |
Domanda
Sono stato in grado di innescare azioni C # personalizzate per overrride installare e committ fasi di un MSI. Tuttavia, durante la distribuzione di un'applicazione ASP.NET voglio essere in grado di eseguire i controlli prima che la inizia installare anche.
So che ci sono condizioni di lancio, però, mi piacerebbe essere in grado di collegare il mio proprio codice qui per gestire i controlli sul lancio me stesso come da quello che vedo le condizioni di lancio sono semplicemente per il controllo delle versioni corrette di IIS ecc ?
Qualcuno mi potrebbe punto nella giusta direzione qui, o anche se c'è un modo per ottenere le condizioni di lancio per sparare qualche C #?
Soluzione
Credo che l'utilizzo di un'azione personalizzata per impostare un valore di proprietà e quindi eseguire una condizione di avvio per controllare il valore della proprietà sarebbe un modo. Tuttavia, questo non sembra applicarsi a VS progetti di installazione, dal momento che le azioni personalizzate non viene eseguito fino a dopo le condizioni di lancio. WiX permetterà un maggiore controllo e dovrebbe permettere azioni personalizzate da eseguire prima.
Un modo rozzo di farlo sarebbe quello di avere l'azione personalizzata un'eccezione e hanno l'installazione rollback, ma che sarebbe un brutto hack.
Ho trovato un forum discutere su come controllare se un determinato servizio è in esecuzione su di installazione che forse si può portare nella direzione corretta.
Altri suggerimenti
Basta programmare la vostra azione personalizzata immediatamente dopo LaunchConditions. Il risultato è lo stesso per tutti gli effetti.
In InstallShield che è solo una questione di selezione quando viene eseguito tramite i menu a discesa. O utilizzando WiX, che sarebbe qualcosa di simile:
<Custom Action="BlahBlahBlah" After="LaunchConditions">1</Custom>
Come sempre, per chiunque Guida introduttiva di MSI Mi raccomando di leggere The Definitive Guide to Windows Installer . Esso fornisce conoscenze di basso livello inestimabile (utilizzando Visual Studio progetti di installazione e Orca) che si applica non importa se si sta utilizzando WiX, InstallShield o qualsiasi altro strumento per costruire i file MSI.