È fattibile/sensato racchiudere un programma di installazione Inno Setup all'interno di un MSI per una distribuzione più semplice tramite AD?

StackOverflow https://stackoverflow.com/questions/71203

  •  09-06-2019
  •  | 
  •  

Domanda

Il nostro programma di installazione è scritto con Inno Setup e in realtà ne siamo abbastanza soddisfatti.Tuttavia, alcuni clienti continuano a richiedere un programma di installazione MSI da poter distribuire più facilmente tramite Active Directory.Abbiamo già fatto di tutto per far sì che il programma di installazione gestisca davvero bene le installazioni automatizzate e non presidiate estendendo le funzionalità di Inno Setup /LOADINF-meccanismo con le nostre opzioni.

Per soddisfare i clienti che chiedono MSI, avevo pensato di avvolgere semplicemente il nostro normale programma di installazione all'interno di un MSI, possibilmente creato utilizzando WIX.La domanda è:posso mantenere l'elevata configurabilità offerta dal nostro attuale programma di installazione?Come potrei esporre le opzioni del programma di installazione di Inno Setup tramite l'MSI esterno nello scenario di installazione automatica/di massa?

Tieni presente che non sono ancora arrivato al punto di approfondire personalmente la creazione di MSI e WIX.In questo momento mi interessa solo sapere se le persone che sanno di cosa stanno parlando pensano che questo sarebbe un approccio fattibile/sensato in cui investire le nostre energie in primo luogo...

EDIT:] Inizialmente pensavo di poter fare con l'approccio di estrazione e esecuzione della temperatura, cioèl'MSI servirebbe semplicemente come mezzo per consegnare il programma di installazione Inno al PC di destinazione ed eseguirlo lì in /VERYSILENT-modalità.Ma immagino che i clienti che richiedono l'MSI vogliano anche essere in grado di disinstallare o addirittura modificare l'installazione da una posizione centrale e immagino che ciò non sarà possibile in quello scenario, vero?

PS:Anche qui abbiamo una vecchia copia di WISE per MSI, ma quell'esperienza è stata in realtà il motivo per cui abbiamo iniziato a utilizzare Inno per cominciare...

È stato utile?

Soluzione

No, non c'è modo di farlo mantenendo comunque le funzionalità richieste "implicitamente" dai tuoi clienti.L'unico "wrapping" in MSI che puoi fare è estrarlo al momento dell'installazione e avviare il programma di installazione InnoSetup dalla posizione temporanea in cui lo hai estratto.MSI è un modo fondamentalmente diverso di lavorare:InnoSetup (e NSIS e la maggior parte degli altri programmi di installazione) adottano un approccio incentrato sul codice:tu "programmi" i "passaggi" per installare i tuoi dati.MSI è un database e adotta un approccio "incentrato sui dati":tu indichi quali file devono essere installati e il "runtime" MSI fa il resto.Questo ti dà il controllo delle versioni e il controllo esatto di cosa va dove.

In breve, per offrire ai tuoi clienti ciò che desiderano (ovvero la facilità di implementazione offerta da MSI con AD), avrai bisogno di MSI "adeguati".Buona fortuna, è una grande seccatura IMHO.Ma dà buoni risultati una volta padroneggiati MSI e WiX.

Altri suggerimenti

Anch'io ho avuto questo problema molte volte.Pertanto, ho creato un metodo standard per affrontare questo problema e il risultato è una procedura guidata che ti guiderà attraverso i passaggi.Lo strumento supporterà quanto segue:

  1. Avvolgi l'exe in un MSI.
  2. Supporta la disinstallazione.
  3. Mostra solo un programma in "Aggiungi o rimuovi programmi".
  4. Consentono di passare argomenti della riga di comando come /SILENT alla configurazione incorporata quando si esegue il pacchetto MSI con MSIEXEC.EXE.

Puoi ottenerlo a http://www.exemsi.com (la versione base è gratuita)

Usa il mio modulo di contatto e fammi sapere cosa ne pensi :-)

In risposta alla tua modifica:sì, ciò che descrivi impedirà di eseguire aggiornamenti (diversi da eliminare/reinstallare) e configurazione remota, poiché il database MSI non saprà nulla del contenuto del tuo programma di installazione.

Tuttavia, molti pacchetti di installazione hanno avviato il "supporto" MSI in questo modo:InstallShield lo ha fatto, ad esempio.Questo è il motivo principale per cui li ho scaricati, perché gli installatori realizzati in questo modo sono inutili per gli scopi MSI.Non so se le versioni recenti di InstallShield siano migliori, l'ultima volta che ho controllato è stato 5 anni fa.

È abbastanza semplice creare un kit wrapper che installi automaticamente INNOSETUPper da MSI.Per le funzionalità di base (installa/disinstalla) questo è sufficiente.La maggior parte dei programmatori di configurazione non implementa comunque la riparazione.

  1. creare script silent.inf per INNO Setup (opzionale)

  2. creare install.bat che chiama

    myinnosetup.exe /silent /NOCANCEL /norestart /Components="xxx"

    puoi usare /verysilent
    puoi caricare le impostazioni da silent.inf con /LOADINF="silent.inf"

  3. creare un file di installazione MSI che chiami install.bat (con parametri se necessario)

  4. consegna tutti e 4 i file al tuo cliente e loro potranno distribuire il tuo setupper Inno con SMS o ActiveDirectory e tutti saranno felici :)

Direi che è possibile fare tutto ciò che desideri con un Inno Setup con pacchetto MSI, ma è tutt'altro che banale e l'utilizzo di WiX potrebbe rendere questo particolare compito più difficile.In breve non lo consiglierei davvero.

Ma se davvero lo volessi...

I file MSI sono semplicemente file di database con istruzioni di script aggiuntive e spesso incorporano il file .cab che contiene il materiale che desideri effettivamente installare.

Se utilizzi Wise, genererai script predefiniti ai quali potrai quindi aggiungere le condizioni di Windows Installer e controllare gli eventi a un livello più preciso (Installa, ripara, modifica, disinstalla) in modo che richiamino azioni equivalenti sullo script di installazione di Inno Setup che devono essere installati e conservati in una cartella temporanea.

Non ha senso mischiare le tecnologie di installazione.

Se stai mixando, ottieni il primo problema con il materiale di disinstallazione.senza modifiche ottieni 2 programmi di disinstallazione del tuo programma.

ci sono alcuni articoli che iniziano con Windows Installer nella "rivista entwickler"

  • Entwickler Magazin (edizione:03.09/15.04.2009) Articolo:Msi-pake-pakete MIT Open-Souce-Software Erzeugen Teil 4
  • Entwickler Magazin (edizione:02.09/12.02.2009) Articolo:Msi-pake-pakete MIT Open-Souce-Software Erzeugen Teil 3
  • Entwickler Magazin (edizione:01.09/10.12.2008) Articolo:Msi-pake-pakete MIT Open-Souce-Software Erzeugen Teil 2
  • Entwickler Magazin (edizione:06.08/15.10.2008) Articolo:Pacchetto MSI con software Open Source

http://entwickler-magazin.de/

Windows Installer dovrebbe essere l'unica tecnologia per le tue installazioni.è a prova di futuro ed è stabile!

Avvolgere un Inno Setup in un pacchetto MSI non è un compito banale.Tuttavia, è possibile.Esistono molti strumenti gratuiti che possono essere utilizzati per farlo.Dovresti sceglierne uno che supporti anche disinstallazioni e aggiornamenti.

Ho trovato solo uno strumento gratuito che supporta gli aggiornamenti e la disinstallazione.Guardare http://www.exemsi.com/inno-setup-and-msi

Ciò equivarrebbe praticamente a consegnare un file ZIP e richiamare la decompressione entro la fine dell'installazione.

Con tale approccio AD e Windows Installer verrebbero ingannati come se avessero a che fare con una corretta installazione MSI, ma poiché non è così, si ritorcerebbero contro di te alla prima occasione.

Non andare in questa direzione.

E WiX è comunque un set di strumenti superiore a InnoSetup, quindi il tempo che dedicherai all'apprendimento e al porting sarà ripagato da un migliore supporto della collaborazione.

sebbene l'ultimo commento sia fattibile e realizzabile, il passaggio a MSI è il modo migliore per gestirlo.

quasi tutte le grandi organizzazioni stipulano solo MSI, ci sono molteplici ragioni per cui.

1) In primo luogo è la facilità di distribuzione 2) più importante per alcuni è la socievolezza dell'applicazione 3) auto guarigione

inno setup e altri strumenti simili che non implementano Windows Installer semplicemente non possono offrire socialità con le applicazioni allo stesso modo di Windows Installer.

devi capire che Inno setup è un software progettato per distribuire una singola applicazione.

Windows Installer è un intero framework per gestire la socialità, la rappresentazione dell'utente, l'elevazione dell'utente, l'autoguarigione, la correzione del profilo utente.

I due non sono nemmeno lontanamente vicini in termini di funzionalità, nessuna configurazione nella mia mente è completamente e assolutamente fuori rotta in termini di confronto con Windows Installer.

Può creare installatori di successo?Sì, è facile da usare?Sì, crea buoni installatori singoli?Sì, è la scelta migliore per Enterprise?NO

Il primo strumento sviluppato da Microsoft "SMS Installer" è stato Innosetup 10 anni fa.Le cose sono cambiate drasticamente nel mondo dell’installazione e inno setup semplicemente non ha tenuto il passo con il ritmo di quel cambiamento.

Devo inserire un valore personalizzato su silent.inf (non un valore di impostazione di configurazione inno stabilito) sembra che LOADINF lo consenta.

Nota: se usi makemsi non devi includere una bat poiché puoi usare $WrapInstall.

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