2010-10-18 26 views
18

Ho cercato invano di trovare un articolo o un messaggio che elenca le limitazioni funzionali di WiX (Windows Installer XML)/WiX Toolset. Dopo aver utilizzato WiX per un paio di settimane, mi viene in mente almeno due limitazioni nella più recente versione RTM (v3.0):Quali sono i limiti di WiX e WiX Toolset?

  • WiX Toolset non può fare un bootstrapper (setup.exe) .
  • WiX Toolset non può recuperare registrazione COM informazioni da un file COM eseguibile.

Riesci a pensare ad altre limitazioni? Qualcosa in cui ti sei imbattuto mentre lavoravi a un progetto di distribuzione? Penso che queste informazioni potrebbero essere utili per le persone che imparano il WiX.

+1

Grazie a Yan e Chris per le risposte perspicaci. Vorrei poter scegliere entrambe le risposte come risposte accettate. –

risposta

19

È più facile per me rispondere a questa domanda in termini di ciò che manca a WiX di InstallShield (mancanza di funzionalità).

  • Bootstrapper/Chainer - WiX ha un programma di avvio automatico chiamato Masterizza che è ora incluso in WiX v3.6.
  • XML Read - WiX ha solo CA di per scrittura non leggere (AppSearch) XML file
  • Testo ricerca/sostituzione - InstallShield ha modelli per la lettura/scrittura non file/XML INI
  • MSSQL Solo - No supporto per Oracle e MySQL
  • Interfaccia di automazione - Nessun DOM per in fase di aggiornamento/generazione di progetti . Devo fare tutto con il grezzo XML.
  • No nativo di IIS 7 supporto - Supporto nativo IIS7 è presente da WiX v3.5
  • principalmente testo Solo set di strumenti. Nessuna GUI Progettisti per il sollevamento di carichi pesanti (vedere IsWiX). XML è conciso e ha il suo posto ma è come confrontare Notepad in Blend.

Ho utilizzato il calore per estrarre la COM in modo abbastanza efficace, quindi non è più una preoccupazione per me.

+0

Punti eccellenti. Grazie. A proposito, presumo tu usi il calore per estrarre informazioni COM da DLL, non da EXE, giusto? –

+0

@Chris: +1 per i punti 2 - 4. Anche quelli hanno influenzato il mio lavoro, ma ho dimenticato di menzionarlo nella mia risposta. –

+0

Lo faccio per EXE/DLL e gestito/non gestito. Io uso un piccolo programma che ho scritto che mette un osservatore del filesystem su una directory e chiama il calore ogni volta che il contenuto cambia. Inserisco il mio file quindi inserisco le sue dipendenze finché non funziona e taglia/incolla gli elementi COM. Quindi su una macchina pulita installo e collaudo. –

12

vorrei aggiungere parecchi più punti, ma questi difficilmente può essere definito gravi limitazioni dal momento che tutti possono essere lavorati in giro:

  • Non c'è strumento di ready-made per incorporare le trasformazioni (MST) nel pacchetto MSI; questo è dove viene in soccorso msidb.exe
  • Devi fare del lavoro extra per creare un singolo pacchetto con un numero di localizzazioni, come creare pacchetti N, generare trasformazioni di linguaggio N su un pacchetto neutro, incorporare quelle trasformazioni nel pacchetto , indica al tuo bootstrapper di chiamare la trasformazione della lingua corretta
  • WiX 3.0 ha un'estensione IIS piuttosto limitata - supporta IIS 7 solo in modalità compatibilità IIS 6; ma fortunatamente questo non è più vero per WiX 3.5
  • Heat non può generare "1 componente - N file" per impostazione predefinita. Sì, lo so, non è raccomandato, ma a volte ne hai bisogno; fortunatamente, è possibile trasformare la potenza termica come più vi piace con XSL
  • PermissionEx di UtilExtension non ha un interruttore per impostare gli ACL solo sulle cartelle. Se è necessario impostare ACL solo per i file installati, questo è piuttosto secondario. Ma ho dovuto patchare WiX con una soluzione rapida per poter dire "applica queste autorizzazioni solo alle cartelle" sull'albero del file system esistente

Ancora una volta, vorrei ripetere che non considero questi limiti gravi. Sono molto contento di ciò che Rob e il team hanno fatto finora, e sono sulla buona strada! :)

+0

Esattamente le informazioni che sto cercando. Grazie Yan. –

+1

Il treno può essere (principalmente) sulla strada giusta ma è in ritardo di circa 5 anni. Sopravvivo ai limiti di WiX mescolandolo con InstallShield ma dal mio punto di vista la mancanza di un bootstrapper è un killer che mi impedisce di andare al 100% WiX per il momento. Tuttavia, usare stricompletamente WiX per sostituire porzioni di InstallShield è risultato molto buono per me. –

+0

Per quanto riguarda il secondo punto: questo è esattamente ciò che fa SharpSetup (+ un paio di altre cose come aggiunge la possibilità di modificare la GUI dell'installatore nella progettazione VS). –