Quale prodotto di installazione usare? InstallShield, WiX, Wise, Advanced Installer, ecc.

Al momento sto facendo alcune ricerche per spostare il pacchetto di installazione che utilizziamo attualmente (Wise Installer 9) e passare a qualcosa che gestirà cose come Windows Vista, Windows 7 e sistemi a 64 bit. La localizzazione degli installatori sarebbe di beneficio poiché abbiamo anche un certo numero di clienti francesi canadesi.

Al momento disponiamo di installazioni per pacchetti software e utilità nelle seguenti tecnologie:

  • Progress 4GL
  • Visual Studio 2005
  • Visual Studio 2008
  • .NET Compact Framework 3.5

Ho già esaminato WiX e InstallShield e anche Altiris è stato sostituito per il vecchio sistema Wise.

Non ho ancora giocato con InstallShield, ma da tutto ciò che ho visto / installato sembra essere uno dei preferiti del settore. Ho sfogliato alcuni dei tag Stack Overflow relativi a InstallShield e sono curioso di vedere cosa ne dice il gruppo.

Per impostazione predefinita, vado da loro? Quanto è buono WiX in roba diversa da.NET?

AGGIORNAMENTO, agosto 2018 , una nuova opzione più breve: come creare il programma di installazione di Windows . Focalizzato sulla sintesi di MSI and its major benefits e per elencare i major tools available (con link per il download), oltre a mentioning some new, trending deployment technologies .


Ho lavorato nello sviluppo di software come manager di rilascio , ingegnere di costruzione , sviluppatore di installazione e come application packager , ingegnere di SOE e ingegnere di distribuzione (SCCM) in grandi società.

Lungo la strada, ho utilizzato la maggior parte dei principali strumenti di packaging (alcuni in molte versioni diverse): InstallShield , Saggio (fuori mercato, sfortunatamente), WiX , Advanced Installer (solo test), Orca ed io abbiamo testato alcuni altri strumenti (link a “Windows Authoring Authoring Tools for Developers ” da http://www.installsite.org) – un elenco piuttosto esauriente di strumenti). Ho anche usato strumenti di distribuzione e implementazione meno comuni come Unicenter di Computer Associates, probabilmente fuori mercato ormai. C’è anche una pagina sugli strumenti di authoring di installazione non MSI .

AGGIORNAMENTO : Se ti trovi nella necessità di uno strumento MSI per confrontare due versioni di file MSI o solo per estrarre informazioni da un file MSI, potresti leggere questa risposta: Come posso confrontare il contenuto di due (o più) MSI File? (incentrato su strumenti MSI gratuiti).

Questo post fornisce una panoramica dei punti di forza di alcuni dei diversi strumenti di authoring e alcuni ostacoli da prendere in considerazione . Per tutte le loro somiglianze, questi strumenti sono in realtà abbastanza diversi. Tutti i tentativi sono stati fatti per rendere le descrizioni il più obiettive ansible – descrivendo l’esperienza del mondo reale con aspetti positivi e negativi.


Argomenti relativi alla distribuzione correlata

  • Prima di approfondire la revisione dei diversi strumenti, ecco alcuni altri link con informazioni sulla tecnologia MSI stessa.
  • Ecco una descrizione generale delle attività di distribuzione comunemente supportate negli strumenti di distribuzione e una descrizione del motivo per cui la distribuzione sembra diventare sempre più complicata.
  • Un sacco di persone sembrano pensare che l’MSI sia più un problema di quanto valga e, a volte, ciò può essere comprensibile. I vantaggi sono reali, in particolare per l’implementazione aziendale, ma lo sono anche alcuni dei problemi.
    • Ecco una descrizione che ho scritto sui principali vantaggi aziendali di MSI (da serverfault.com). L’articolo è cresciuto troppo, ma si spera che sia ancora pertinente.
    • Nello stesso articolo ho scritto dei tipici difetti di progettazione del mondo reale nei file MSI (un lavoro molto in corso – solo un “dump della memoria” derivante dall’esperienza di “entrambi i lati del software”: sviluppo e implementazione).

InstallShield

  • Ricco di funzionalità.
  • Sempre aggiornato con le ultime tecnologie.
  • (Setup) Orientato allo sviluppatore.
    • Disponibili diverse edizioni.
    • Il prodotto di punta AdminStudio offre sia strumenti di impostazione orientati agli sviluppatori che strumenti orientati a repackager.
  • Ottime funzioni di gestione , localizzazione e automazione delle release per l’automazione dei processi di costruzione. Almeno meglio dei concorrenti.
    • Per i prodotti complessi la gestione delle release è forse il principale punto di forza di InstallShield. È ansible distribuire sapori di tutti i tipi con facilità: versioni linguistiche, versioni OEM, visualizzatori, edizioni applicative, ecc. Utilizzando flag di rilascio e costrutti simili.
    • I flag di rilascio sono essenzialmente utilizzati per escludere o includere in modo condizionale determinate parti del prodotto da ciascuna configurazione compilata: spesso questa è una parte importante di ciò che viene richiesto quando si creano famiglie di configurazioni professionali.
    • La vista di rilascio in Installshield consente una panoramica completa di tutti i diversi tipi di installazione ed edizioni. Vengono visualizzate tutte le versioni linguistiche e le impostazioni di rilascio fornite per il Web (un file di configurazione di grandi dimensioni) o per supporti ridistribuibili (file di origine esterni) e qualsiasi altro tipo di supporto fornito.
      • Fondamentalmente per ogni versione ed edizione è ansible sovrascrivere impostazioni importanti come nome del prodotto, versione del prodotto, pacchetto, codice prodotto e aggiornamento e molte altre impostazioni necessarie che devono cambiare dynamicmente in base all’edizione del prodotto e alla versione della lingua.
      • In molti altri prodotti questo tipo di gestione delle versioni e delle versioni può essere molto più difficile da implementare. Per configurazioni più semplici questo tipo di flessibilità potrebbe essere meno importante.
    • L’API di automazione per il prodotto consente di essere facilmente ” controllato a distanza ” dagli script di automazione di build di vari tipi.
      • Esistono anche moduli di compilazione della riga di comando (da utilizzare su server di compilazione dedicati).
      • L’automazione completa delle build di un’intera suite di prodotti ed edizioni è facilmente ansible utilizzando l’automazione VBScript / VBA / Javascript regolare.
    • Supporto completo per la localizzazione con tabelle di stringhe utilizzate per supportare diversi linguaggi di installazione.
      • Le windows di dialogo di base sono anche fornite già pronte in diverse lingue (costi extra).
      • Hai solo bisogno di localizzare il tuo contenuto di configurazione (sottotitoli di funzioni, windows di dialogo personalizzate o caselle di messaggio, immagini con testo, ecc.) – ancora molto lavoro.
      • Puoi offrire un’enorme configurazione multilingue. Questo non è raccomandato nella mia esperienza per diversi motivi (leggi la sezione di localizzazione). Il problema peggiore è che devi localizzare tutti i contenuti nuovi e modificati in tutte le lingue prima di poter fornire la versione inglese. Questo è quasi mai accettabile per marketing / vendite. E ci sono sempre correzioni che richiedono di ribuild e ri-rilasciare una singola lingua, e quindi si desidera farlo senza UAT e QA per tutte le altre lingue. È meglio fornire build separate per ciascuna lingua (facilmente implementabili).
  • Buon supporto per la comunità: forum della community di utenti .
  • Interfaccia grafica abbastanza buona, le cose comuni sono abbastanza facili.
  • Editor MSI-GUI in piena regola.
    • Molto potente. Un po ‘complesso
    • Le limitazioni delle caratteristiche della GUI della tecnologia MSI sottostante causano alcuni inconvenienti e limiti fastidiosi, ma questo è lo stesso per tutti gli strumenti di distribuzione.
    • La causa principale è che la GUI MSI viene implementata utilizzando tabelle di dati all’interno del file MSI stesso, e questo causa gravi limitazioni per quanto riguarda gli eventi di dialogo rispetto al “modello di eventi” completo per le windows di dialogo Win32 corrette.
  • Linguaggio di scripting in stile C completo per azioni personalizzate chiamate ” InstallScript “.
    • InstallScript ora viene compilato in nativo o emulato con la propria sandbox, non è sicuro quale. Non è necessario installare un runtime come prima.
    • Tra l’altro questo runtime è stato all’origine di alcuni problemi di distribuzione piuttosto fastidiosi a causa della corruzione del runtime – apparentemente spesso correlata a DCOM – e varie incompatibilità tra diverse versioni di runtime. Ecco alcuni link per la risoluzione dei problemi per “scopi legacy”:
      • Imansible installare InstallShield Scripting Run Time .
      • L’installazione non è in grado di trovare o aggiornare ISScript.msi .
      • Flexera Consumer Central (per problemi di configurazione dell’utente finale).
    • Sebbene il runtime fosse una fonte di errori molto problematica, ora sembra che tutti i problemi correlati siano stati risolti completamente da Installshield 12 e successivi.
  • Guida ben integrata nella GUI .
    • Molto importante per una tecnologia così difficile.
    • Spesso molto utile, specialmente per le attività comuni.
  • Il formato di archiviazione di file binario predefinito non consente alcun controllo o diramazione di origine reale (a differenza di WiX che fornisce questo fuori dalla scatola). Penso che ci sia un modo per archiviare il progetto in formato testo, ma non l’ho mai usato. Non sono sicuro di quanto sarebbe efficace.
  • Senza ombra di dubbio, di gran lunga il migliore di tutti i prodotti di installazione.
    • In tutta onestà, la maggior parte dei bug si riferisce al particolare tipo di progetto ” Installscript MSI ” che implementa un modello di finestra di dialogo personalizzato per le configurazioni MSI (piuttosto che la GUI nativa basata su tabella che viene soppressa).
    • In altre parole, il tipo di progetto Installscript MSI NON DEVE essere utilizzato in nessuna circostanza. Tieni questo a cuore, se li usi ancora – sono particolarmente difficili da aggiornare correttamente (la prima implementazione potrebbe essere OK, ma gli aggiornamenti si stanno interrompendo). Altri tipi di progetti sembrano funzionare bene.
    • Dopo aver abbandonato InstallScritto MSI (che la maggior parte delle persone sembrava fare), lo strumento ha funzionato abbastanza bene per me personalmente (non senza bug però).
  • Non ero soddisfatto del supporto per la distribuzione di siti IIS e applicazioni COM + . Avevo bisogno della flessibilità e della personalizzazione di WiX al posto della facilità d’uso di Installshield. Semplicemente non c’era abbastanza flessibilità e controllo disponibili.
  • Supporto per pacchetti virtuali Microsoft App-V e nuove tecnologie di virtualizzazione.
    • Permette alcune nuove cose rispetto ad una normale applicazione.
    • Streaming dell’applicazione – nessuna installazione locale su macchine – JIT.
    • Utilizza due software incompatibili sullo stesso computer.
    • Aggiornamento tramite il server.
    • Controllo delle licenze: massimo utenti simultanei o software di collegamento a un gruppo / utente.
    • Presentare l’applicazione rapidamente e facilmente agli utenti.
    • Altro marketing Microsoft qui .

Saggio

Wise è ufficialmente in pensione , ma è stato resuscitato prima. Sfortunatamente alcune questioni legali potrebbero averlo reso definitivo questa volta, per quanto ne so. Sarebbe un peccato per un così grande strumento. È stato acquisito da Altiris e poi da Symantec. Ora sembra essere fuori mercato . Sto ancora uscendo nel riassunto delle buone caratteristiche di Wise:

  • Veloce e facile e abbastanza ricco di funzionalità.
    • Ottima facilità d’uso in generale, eccellente set di funzionalità.
    • Mancanza di alcune (molto) funzionalità avanzate come IIS, gestione avanzata delle versioni, ecc …
  • Amministratore / Repackager orientato.
    • Meno incentrato sul codice di Installshield.
    • Editor di scripting grafico in modo univoco capace e flessibile.
    • GUI di configurazione di configurazione ben progettata.
  • Ottimo anche per i piccoli team di sviluppo che cercano un modo rapido e relativamente semplice per distribuire la propria applicazione.
  • A volte è leggermente in ritardo con le ultime tecnologie (rispetto a Installshield), ma relativamente “senza errori”.
  • Intuitiva interfaccia grafica, le cose comuni sono (molto) facili.
  • Ottima gestione della configurazione della sequenza di installazione e azioni personalizzate in un editor di stile di script. Più scripting della GUI, meno codifica.
  • Rock solidi , pochissimi bug significativi.
  • Aiutare le risorse e il supporto della comunità non alla pari con InstallShield, ma comunque buono.
  • Il mio strumento di scelta per il debugging e la prototipazione (caratteristiche diff veloci, stabili, facili da usare, grandi).
  • E per quanto riguarda le caratteristiche di diff (consentendo il confronto binario di due file MSI).
    • Nessun altro strumento che ho provato si è avvicinato a Wise per le differenze binarie di diversi file MSI.
    • La facilità d’uso e la chiarezza del visualizzatore di diff non erano meno che fantastici.
    • Per le confezioni aziendali tali caratteristiche di diff possono essere una parte molto critica del lavoro in quanto si hanno centinaia o migliaia di pacchetti software diversi da gestire in molte versioni differenti.
  • Su una nota soggettiva : il mio strumento di imballaggio preferito. Molto affidabile.
    • È un vero peccato che lo strumento non sia più disponibile.
    • Possiamo sempre sperare in una “reincarnazione” (ho visto frammenti di GUI che assomigliano a Wise in altri strumenti).

WiX

  • Il grande vantaggio sono i file di origine del testo . Non è necessario memorizzare la sorgente come file binario in cui è quasi imansible tenere traccia delle modifiche e fare il controllo della versione corretta.
    • Le risorse di testo corrette fanno la differenza per i team di sviluppo in termini di ramificazione , controllo delle versioni e fusione . È un salto di qualità (a mio avviso, in particolare per lo sviluppo interno in grandi aziende – dove il processo è complesso, i tempi di risposta sono rapidi e ci sono molti sviluppatori).
    • La necessità e l’uso dei file di origine del testo è stato fondamentale per la creazione del toolkit WiX. Ecco una “Storia WiX” rapida e incompleta con maggiori dettagli. Consigliato per leggere le basi e le motivazioni di WiX.
    • Alcuni strumenti di distribuzione che memorizzano il programma di installazione come binari potrebbero finire in situazioni in cui l’origine binaria mostrerebbe problemi misteriosi che non potrebbero mai essere rintracciati correttamente.
      • Ciò è avvenuto in particolare dopo gli aggiornamenti degli strumenti, che hanno aggiornato anche il formato nella fonte (per qualsiasi motivo).
      • Gli aggiornamenti spesso interessano dozzine di tabelle e centinaia di record che rendono un compito imansible individuare efficacemente il vero problema.
      • I sintomi includevano elementi come l’improvvisa comparsa di build lente, improvvisa velocità di installazione lenta, errori di compilazione inspiegabili, persino la corruzione totale dei file ecc …
      • Con WiX hai piena trasparenza e “snellezza” per la tua fonte. È solo più pulito e affidabile quando viene eseguito correttamente e gli aggiornamenti automatici dell’origine sono possibili, ma non causeranno cambiamenti a cascata attraverso dozzine di tabelle MSI. Combinati con le modifiche al controllo del codice sorgente sono facilmente rintracciabili e (si spera) capiti – non sono state aggiunte cose misteriose e non documentate.
      • Con tutto ciò che è stato detto, va notato che l’aggiornamento da file di origine WiX 3 a WiX 4 sembra non essere banale. Speriamo che questa sia una situazione unica. Non sono sicuro del motivo per cui questo sia successo, e non ho informazioni aggiornate al riguardo.
      • Forse controlla le notizie reali direttamente dal blog di Rob Mensching: http://robmensching.com/blog/ e il blog di Bob Arnson https://www.joyofsetup.com/ . Direttamente dalla bocca del cavallo come Internet rende ansible – è un mondo meraviglioso, a volte ;-). Si dice che stiano facendo ” tartarughe fino in fondo “.
  • Rock solidi, pochissimi bug significativi .
    • Per coloro che hanno lottato con bug di lunga data, intermittenti e inspiegabili in altri strumenti, questa è una manna dal cielo. {Storie di guerra rimosse}.
    • E ancora meglio: i problemi sembrano essere corretti in WiX, a volte con l’aiuto della community – come è appropriato per un toolkit open source. Il più delle volte sembra che il core team si occupi di esso.
  • Molto ricco di funzionalità , ma un po ‘difficile da usare a volte.
    • Ci vuole tempo per abituarsi, e anche quando ci si abitua, le cose possono essere “laboriose” per essere corrette (in particolare se non si usano gli strumenti di supporto inclusi correttamente).
    • Aiuta a utilizzare lo strumento decompilatore dark.exe per decompilare i file MSI esistenti in XML WiX. Questo ti permette di studiare la fonte WiX senza conoscerne troppo in anticipo.
    • Personalizzazione eccezionale per cose complesse come IIS , COM + , SQL Server , permessi , regole del firewall , ecc … “Tutto” è ansible, ma in qualche modo coinvolto a volte.
    • WiX efficacemente ” estende Windows Installer ” con funzionalità nuove e molto necessarie. Questo è un enorme vantaggio per tutti coloro che prima dovevano “rotolare le proprie” soluzioni – spesso per cose che sembravano banali (ma erano ancora molto inclini agli errori).
    • Il potere di queste estensioni non può essere sopravvalutato. Puoi liberarti di molte azioni personalizzate complesse autodefinite a favore di soluzioni testate . Con adeguato supporto per il rollback ! (una caratteristica molto trascurata nelle impostazioni del fornitore – nella mia esperienza quasi tutte – che causa uno stato di sistema non pulito dopo le configurazioni abortite).
    • Ho un’esperienza personale nella scrittura di una DLL C ++ con azioni personalizzate per attività comuni con il corretto supporto per il rollback e la quantità di lavoro è sbalorditiva, in particolare il QA della funzionalità di rollback effettiva.
  • Una notevole mancanza di strumenti GUI e pochi buoni esempi disponibili – in particolare per WiX 4.
  • Piena integrazione in Visual Studio, con IntelliSense.
    • Apparentemente ci saranno alcune restrizioni su quali versioni di Visual Studio saranno supportate da WiX 4.
    • Non ho ancora i dettagli, ma avrai bisogno di una versione recente di Visual Studio. Penso che ci siano dei bei post sul blog di Rob e Bob su questo.
  • È gratuito (!). Ogni sviluppatore può creare il setup. Qualcuno deve possederlo anche se (!). Veramente ;-).
  • È anche open source .
    • La “community”: https://github.com/wixtoolset . E i problemi aperti: https://github.com/wixtoolset/issues/issues
    • Il download del toolkit include anche DTF ( Deployment Tools Foundation ). Classi .NET per gestire tutti i file MSI con automazione. Guarda un esempio inline qui . Estremamente utile e di buona qualità. NESSUNA interoperabilità COM da affrontare. Vedi questo post serverfault.com . E il blog di Chris Painter .
  • Come si inizia? (collegamento diretto a una risposta che è stata ben accolta – con mia sorpresa).
    • Per gli esperti di campionamento, prova questo articolo di The Code Project per un rapido avvio su come creare file MSI con WiX (WiX 3). È davvero semplice (se conosci MSI è evidente).
    • Puoi anche leggere questo articolo sull’overflow dello stack WiX per ulteriori suggerimenti sull’avvio rapido.
    • NOVITÀ E RACCOMANDATE : una risposta StackOverflow che mostra le modifiche minime attuali necessarie per compilare un file MSI funzionante quando si crea un nuovo progetto WiX in Visual Studio: il programma di installazione Wix msi non installa l’app Winform creata con Visual Studio 2017 .
    • Ed è ansible utilizzare il file dark.exe (decompilatore MSI) di WiX per decompilare un file MSI esistente nel formato XML WiX appropriato e quindi studiare come si integra. Molto utile ed educativo – specialmente per le funzionalità avanzate.
  • Versioni attuali e future.
    • La versione 3.1 è stabile e fuori (pubblicato a maggio 2017). Rock solido .
    • La versione 4 ha avuto otto anni di sviluppo in questo momento (agosto 2017).
      • Non è chiaro quando sarà disponibile per il rilascio stabile.
      • Apparentemente sarà un aggiornamento molto importante che richiede una sostanziale rielaborazione dei file WiX esistenti da utilizzare con successo.
      • Non posso fornire dettagli su quali siano le principali differenze a questo punto.
      • La stabilità e l’affidabilità della versione 3 sono state preservate senza dubbio.

Programma di installazione avanzato

  • Non l’ho usato per lo sviluppo reale.
  • Molto facile da usare, bella interfaccia grafica.
  • AGGIORNAMENTO :
    • Registrazione integrata estremamente buona nello strumento stesso durante l’installazione del test di sviluppo. Molto impressionante.
    • Disponibile anche per il riconfezionamento aziendale nella sua ” Architect Edition “.
    • Ricco di funzionalità . Compila tutti i tipi di configurazioni e supporta tutte le nuove tecnologie (App-X, App-V, ecc …)
    • Il supporto per App-V sembra molto esteso.
    • Può importare un certo numero di file sorgente di altri strumenti (Installshield, Inno, Wix, Wise, NSIS, Visual Studio, Desktop Bridge, ecc …). Non testato estesamente da me.
  • Memorizza i progetti in un formato di testo proprietario, per quanto posso vedere.
  • Sembra solido, e nasconde in modo cruciale alcune complessità MSI tramite una buona GUI che mostra caselle di controllo e opzioni intuitive piuttosto che flag e proprietà in stile SDK. Questa è una buona cosa, e manca completamente da WiX a questo punto.
  • Sembra che potrebbe essere utile per prototipazione e test, interfaccia grafica molto forte e automagic per le funzionalità di uso comune.
  • Mi manca la vista Release di InstallShield con i suoi flag di rilascio e le impostazioni di automazione di generazione, nonché altre funzionalità di gestione del rilascio (potrebbe essere migliorata ormai).
  • Nel complesso uno strumento solido che sembra più adatto per gli sviluppatori che cercano un modo semplice per far distribuire le loro applicazioni . Simile a Wise in questo senso.
  • Troppa poca esperienza pratica per scrivere molto di più. Provalo.

Altri strumenti

  • Orca è lo strumento gratuito per Windows SDK che consente di aprire, modificare e in un certo modo confrontare i file MSI binari. Consente inoltre altre operazioni come la generazione di file di trasformazione per la modifica dei file MSI e alcune altre operazioni tecniche. Uno strumento di base che mi piace sempre avere installato e disponibile. C’è un paragrafo Orca più ampio qui che ne discute l’uso (guarda verso il basso). Normalmente devi installare Windows SDK per procurarti Orca (basta installare la versione più recente e cercare lo strumento).
  • Mi è stato consigliato uno strumento gratuito chiamato ” Super Orca “, così come ” InstEd “. Li ho usati solo brevemente, ma sembrano OK, e sono più facili da reperire di Orca (non è necessario scaricare Windows SDK).
  • E ci sono anche molti altri strumenti . Ecco un elenco di strumenti da http://www.installsite.org con l’indicazione se lo strumento è ancora mantenuto o meno triggersmente: http://www.installsite.org/pages/en/msi/authoring.htm (con grazie a Phil Wilson per il link – non potevo resuscitare la sua risposta).
  • Suppongo di poter includere anche un link alla lista di wikipedia del software di installazione .

Consigli sugli strumenti?

Non è il mio posto per fare raccomandazioni sugli strumenti diretti. Ma credo di poter fare alcune “osservazioni” e fornire ulteriori collegamenti per il processo decisionale.

Per qualsiasi serio team di sviluppo interno suggerirei WiX. Laddove altri strumenti hanno facilità d’uso (che è molto importante, e talvolta l’unica cosa importante), WiX eccelle nella sua flessibilità, estensibilità, stabilità e utilizzo dei file sorgente di testo XML – con la pena di essere un po ‘coinvolti nell’affrontare con. E grazie alla sua licenza gratuita, ogni sviluppatore può visualizzare e compilare la fonte e le modifiche sono facilmente rintracciabili, ripristinate o approvate. Gestire un processo con tutti gli sviluppatori che aggiornano una singola sorgente WiX ha comunque delle sfide (non è diverso dal normale lavoro di sviluppo – niente è facile).

Per il riconfezionamento aziendale (che è un po ‘oltre l’objective dello sviluppatore di stackoverflow.com), immagino che le opzioni principali al momento siano Flexera AdminStudio e Advanced Installer Architect . Ci sono anche altri prodotti disponibili, e come sempre installsite.org ha i dettagli: Strumenti: Repackaging e distribuzione aziendale .

Per i piccoli team di sviluppo che cercano un modo semplice e rapido per distribuire le loro applicazioni, suppongo che Installshield e Advanced Installer siano i più comuni strumenti basati su “GUI”. Offrono molte funzionalità e sarai in grado di fornire rapidamente una configurazione. Come già affermato, a volte questa è l’unica cosa importante. Molto spesso infatti. È tuttavia ansible fornire un ottimo programma di installazione utilizzando WiX , ma è richiesta molta più conoscenza. C’è una curva di apprendimento e ci sono alcuni limiti severi – in particolare per quanto riguarda la GUI al momento – ma la tecnologia di base è molto solida e libera. E soprattutto ci sono molti altri strumenti (elenco da http://www.installsite.org ) che potrebbero essere più appropriati per il tuo compito, in particolare se si tratta di una semplice applicazione che ha solo bisogno di funzionalità di distribuzione di base. È “ingiusto” che non abbia fornito più informazioni su questi strumenti che sono abbastanza capaci, ma meno comunemente usati o stabiliti.

Dovrei chiarire che raccomando WiX per i team aziendali che offrono applicazioni interne perché possono utilizzare la flessibilità fornita da WiX e avranno anche le competenze e le competenze tecniche disponibili per affrontare la complessità di WiX. E possono addestrare nuovi ragazzi quando necessario. Una questione molto importante. WiX non è banale da imparare a meno che tu non abbia già molta conoscenza di Windows Installer – quindi è un pezzo di torta, ma richiede ancora tempo perché è così flessibile e per la mancanza di una parola migliore: “laborioso” – è come reale sviluppo, hai un controllo reale ma devi essere preciso. Una volta creata una sorgente WiX può essere un sogno da affrontare – sai cosa sta succedendo.

Riassumendo: se sei un piccolo (o grande) fornitore di terze parti in cerca di un buon modo per consegnare rapidamente la tua domanda ai tuoi clienti , probabilmente stai meglio con uno strumento commerciale che mira a fornire facilità d’uso e una soluzione rapida da implementare quantità limitate di modifiche. Per IIS, in particolare, gli strumenti commerciali non sono riusciti a fornire la flessibilità necessaria per me in passato. E i team di sviluppo interni dovrebbero almeno provare WiX.

Infine una parola di caucanvas : Advanced Installer , InstallShield e Saggio generalmente consentono il confezionamento di software per la virtualizzazione . Non sono a conoscenza di alcuna funzionalità in WiX per questo al momento. Si prega di aggiungere commenti o modificare questo post se si dispone di informazioni qui.


Suggerimento pratico :

Generalmente uso altri strumenti per la prototipazione e WiX per l’implementazione se ho una scelta. È ansible utilizzare dark.exe (decompilatore MSI) di WiX per decompilare un file MSI esistente. A volte implemento qualcosa in Wise o InstallShield, compilo un MSI e lo decompongo nel formato WiX. Quindi sollevo il markup WiX e faccio il dump nel mio file WiX principale. Funziona alla grande e solitamente molto velocemente. Questo in combinazione con lo strumento heat.exe per la creazione automatica dei componenti mi ha permesso di confezionare un enorme sito Web IIS in meno di 10 minuti dopo alcune sessioni di esercitazione. Successivamente ho la piena personalizzazione fornita da WiX, con la facilità d’uso degli altri strumenti.

Pulire la fonte decompilata non è un picnic, ma non è nemmeno scienza missilistica. È necessaria una conoscenza di MSI e per un po ‘si “scherza”. Tieni presente che non è consigliabile scaricare versioni di prova di strumenti commerciali per generare e decompilare un file MSI. I file MSI risultanti sono generalmente “filigranati” con funzionalità difficili da rimuovere.


Alcuni collegamenti :

  • Come creare il programma di installazione di Windows
  • Lista ristretta di strumenti di distribuzione
  • Contenuto precedente

Quanto è buono WiX in roba diversa da.NET?

WiX supporta tutte le funzionalità di Windows Installer in base alla progettazione. Il programma di installazione di Windows è precedente a .NET.

Personalmente preferisco WiX su InstallShield perché

  • il formato di testo XML consente la revisione dei commit, la fusione delle modifiche tra i rami
  • build l’automazione dovrebbe includere la generazione del setup, che è facile con WiX
  • i file wixlib con definizioni di gruppi di componenti consentono lo sviluppo di configurazioni modulari . Non c’è bisogno di preoccuparsi delle dipendenze delle dipendenze, ecc.
  • senza problemi di licenza o di implementazione, abbiamo semplicemente incluso il set di strumenti WiX in una cartella / tools dei nostri progetti in SVN

Quando abbiamo usato InstallShield, questi erano tutti punti di dolore. Tuttavia, WiX ha una curva di apprendimento molto ripida.

Dovresti controllare il programma gratuito Inno Setup : per lungo tempo lo sto usando, non mi ha mai deluso!

Non ho usato InstallShield tra qualche anno. Nel mio ultimo lavoro ci siamo spostati da esso a NSIS principalmente perché il suo formato binario rendeva difficile il controllo della versione, e perché poche volte il file sorgente è stato semplicemente danneggiato, senza alcuna speranza di recupero. Ciò potrebbe essere correlato a SourceSafe, ovviamente!

Inoltre, era inutilmente complicato. Non fraintendetemi: stavamo facendo alcuni installer ragionevolmente complicati, con molti percorsi condizionali, unire moduli e interfacce utente sofisticate, ma anche per questo era troppo, troppo complesso.

NSIS ha un ottimo sistema di plugin, e puoi programmarlo imperativamente usando il plug-in LogicLib , avere file di disinstallazione automatici generati e molte altre cose.

Ho ereditato una manciata di progetti InstallShield (v12). I file sono tutti di testo / XML e quindi non ci sono problemi di controllo della versione. Abbiamo una macchina di compilazione che usa i loro strumenti da riga di comando, che funziona bene. Quello che non mi piace è (a) il costo per sede di sviluppatore e (b) bug.

Inno Setup è molto capace / flessibile e ci sono generalmente diversi modi per raggiungere un objective, il che ha portato ad una curva di apprendimento ripida. Esistono diverse versioni dietro la loro ultima versione (a causa della loro struttura dei costi di aggiornamento). Poiché i nostri prodotti funzionano su Widows, se dovessimo passare potrei prima cercare la soluzione di installazione di Microsoft fornita con un abbonamento MSDN.