Domanda

Per qualche ragione, stiamo offrendo un prodotto con la nostra interfaccia grafica di installazione, che significa, ci verrà eseguito l'installazione MSI in silenzio sfondo.

Utilizzando l'API MSI "MsiInstallProduct", posso installare il prodotto in silenzio, ma non ho idea di come posso ottenere i dati di avanzamento di questa installazione e come posso cancellarlo.

Qualcuno ha qualche idea?

È stato utile?

Soluzione

Ecco un progetto di esempio che sembra di fare ciò che si fa riferimento a: http://www.codeproject.com/KB/cs/msiinterop.aspx

Altri suggerimenti

UPDATE giugno 2018 : Anche se lo strumento illustrato di seguito non è più disponibile per il download, l'ho trovato attraverso una macchina Wayback. Suppongo che sia OK e legale di link ad esso, visto che lo strumento era freeware. Aggiornati i link qui sotto.

Aggiorna : Questo strumento da saggio è purtroppo non scaricabile più . Non sono sicuro se è OK per distribuirlo sia. Sembrava essere uno strumento gratuito distribuito come parte del loro principale suite di Wise Package Studio, ma io non credo che è open source. Vorrei che si rilasciarlo come uno strumento open source.

I prodotti per l'imballaggio Wise sono stati interrotti a causa di una serie di problemi legali .


Credo che si può ottenere lo stato di avanzamento tramite l'API di MSI, ma se fossi in te vorrei solo mostrare la barra di avanzamento del MSI in sé dopo aver richiamato l'installazione tramite msiexec.exe .

MSI supporta diversi livelli di installazione diversi (pieno, completamente silenzioso, interfaccia grafica di base, ridotto GUI, ecc ...). Nel tuo caso suona come si desidera un'interfaccia utente di base. Questo produce una barra di avanzamento in cui è possibile nascondere il pulsante di annullamento, e mostrare opzionalmente una finestra di completamento modale:

Installa silenziosamente con barra di avanzamento, pulsante e nessuna finestra di dialogo modale al termine senza annullare:

msiexec.exe /I "Test.msi" /QB-!

Per evitare di dover costruire questi righe di comando msiexec stupido manualmente, utilizzare il MSI linea di ordine builder da Wise: http://www2.wise.com/filelib/WICLB.exe ( risuscitato dai Wayback macchina ).

Si prega di eseguire il download virustotal.com per la sicurezza.

entrare descrizione dell'immagine qui


correlati :

È necessario specificare un gestore di interfaccia utente esterno utilizzando MsiSetExternalUI o MsiSetExternalUIRecord prima MsiInstallProduct (quest'ultimo è più bello, ma ha una versione MSI requisito più elevato). La funzione si specifica verrà chiamato per ogni messaggio di Windows Installer vuole al trattamento. Questo vi darà i dati, e la possibilità di rispondere raccontarla per annullare. Se avete bisogno di MSI 4.5 o versione successiva, è possibile utilizzare un incorporato DLL gestore UI esterna, che non richiede un bootstrap.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top