Domanda

Abbiamo deciso di passare dalla configurazione integrata VS a WiX.

Tuttavia, ciò che attualmente facciamo è utilizzare i file di output dei progetti come input per il progetto di installazione. Questo ci consente di aggiungere facilmente i file dell'applicazione a una directory (per immagini, esempi e altre risorse ...) e tali file vengono automaticamente aggiunti all'installazione durante la creazione.

Non sono riuscito a trovare funzionalità simili in WiX. WiX sembra richiedere una voce Directory e una voce File per ogni directory e file. Ciò richiederebbe di cambiare la sorgente WiX ogni volta che viene aggiunto un file che, ai miei occhi, è proibitivo poiché ne abbiamo così tanti.

Esiste un modo integrato per farlo con WiX o devo scrivere il mio compito che creerà una fonte WiX prima di chiamare candela?

È stato utile?

Soluzione

Per WiX 2.0, il sego è molto limitato; paraffina e malva offrono funzionalità aggiuntive. Per WiX 3.0, il calore offre le stesse funzionalità del sego, un po 'meglio.

Nel mio caso ho usato la fonte di malva e modificato un po 'e l'ho usato, perché la paraffina ha bisogno della versione 3.5 di .Net.

Puoi utilizzare Mallow

o strumento Paraffin per generare frammenti WiX: Introduzione , Il dolore di WiX , Un sego migliore , Paraffina , Scarica , Paraffin per WiX 3.0

Altri suggerimenti

Sto usando heat.exe in WIX 3.5 solo per quello scopo. L'ultima volta che ho controllato, la documentazione non era aggiornata con la versione 3.5, quindi tieni in mente.

Ecco un esempio:

  

" $ (WIX) bin \ heat.exe " dir   " $ (SourcePath) " -cg MyFiles -gg -scom   -sreg -sfrag -dr INSTALLDIR -out " $ (ProjectDir) Fragments \ FileFragment.wxs "   -var wix.InstallerPath

Il progetto MapGuide Open Source sta attualmente utilizzando Paraffin 3.0 come altri hanno indicato.

Fondamentalmente, la prima volta per una data versione di rilascio, eseguiremo il nostro script di installazione con un " genera " azione che crea nuovi file .wxs per la cartella di origine con opzioni specifiche per ognuno.

Nelle versioni successive della stessa versione, il " regen " viene chiamata azione per garantire che i file .wxs vengano aggiornati con tutti i nuovi file / directory che sono stati aggiunti.

Credo che anche Heat v3 ora ti permetta di fare molto (o forse tutto?), come Brian Rogers scrive . Mi sento ancora più a mio agio con il modo in cui Paraffin lo fa in modo più esplicito mantenendo GUID statici, ma l'attuale Heat sembra una buona opzione.

Dopo ulteriori ricerche, sembra che ci sia un binario incluso chiamato tallow.exe che fa proprio questo. Crea un frammento da una directory cercando ricorsivamente i file.

Nel mio uso di WIX, non ho mai trovato una funzione che ti consente di aggiungere un'intera directory di file alla volta. Questo perché ci sono molti modi in cui un determinato file può essere usato (il sistema non sa se in seguito vorrai fare riferimento a un file specifico in quella cartella, ecc ... e deve conoscerli), e anche perché l'installazione stessa deve essere piuttosto specifica.

Questo non ti impedisce di scrivere il tuo frontend per WIX che genererà il file XML WIX (o parti di esso) dopo aver analizzato i contenuti di una struttura di directory. Questo è fondamentalmente quello che fa uno dei sistemi che usiamo nel mio lavoro. È la stessa idea di qualsiasi utilità di generazione di file di testo o di codice. Attraversa l'albero e genera il testo appropriato.

EDIT: in questo modo, puoi considerare WIX come la "lingua di basso livello" per definire l'installazione e la tua utility come "linguaggio di alto livello". Se hai bisogno di aiuto per scriverne uno, faccelo sapere.

Inoltre, è possibile generare il file WIX come parte del processo di generazione aggiungendo questa utilità ai passaggi di creazione personalizzati in VStudio. In questo modo non hai effettivamente un file WIX salvato " che chiunque costruisce, il sistema lo costruisce alla fine, prendendo automaticamente in considerazione i nuovi file nel passaggio post-compilazione.

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