Domanda

Ho scoperto che Wix v3 utilizza uno strumento (heat.exe) per "raccogliere" informazioni in frammenti WiX.O sto cercando nella posizione sbagliata, oppure la documentazione è scarsa.

Qual è il modo migliore per generare automaticamente un frammento WiX (probabilmente utilizzando heat.exe) per una struttura di cartelle complessa che contiene file multimediali:

  • Di vario tipo (ico/png/xaml/etc)
  • Ciò potrebbe cambiare regolarmente (nomi/posizioni/aggiunta/rimozione)
  • Classificati come "Contenuto" e inclusi in un file .csproj

tali da poter essere integrati in un programma di installazione tramite WiX e resistere ad aggiornamenti e patch con decoro?

Informazioni di base

  1. Ho trovato heat.exe, che sembra risolvere il requisito del frammento WiX di generazione automatica
  2. Nel far funzionare la mietitrice "dir", ho notato la mietitrice "progetto" (aiuto della riga di comando)
  3. Il supporto è già nel file di progetto C# e quindi ho notato che "-pog:Content" potrebbe funzionare molto bene
  4. Una ricerca superficiale ha trovato documentazione non aggiornata che non menzionava il "progetto" della mietitrice
  5. L'installatore dell'intero progetto realizzato probabilmente avrebbe potuto farlo con l'harvester "progetto", ma non era sicuro di quanto bene fosse supportato e quali fossero le insidie.
  6. Ho visto la generazione di "PUT-GUID-HERE" e ho capito che la generazione automatica dei guid avrebbe probabilmente implicazioni di aggiornamento/patch.
  7. Ho capito che devono esserci persone che usano questi strumenti per scopi simili e probabilmente potrebbero indicarmi la giusta direzione.

È stato (giustamente) sottolineato che la v3 non è ancora "finita" (da qui la scarsità di documentazione e tutorial).La sensazione che ho ora è che non sia banale automatizzare questo nei miei script di build e gli strumenti stanno crescendo proprio ora per facilitare questo.

È stato utile?

Soluzione

Nella mia esperienza John Robbins' Paraffina risolve molti problemi con tallow.exe (heat.exe nella v3).Non sono sicuro che Paraffin funzioni bene con la v3, ma potrebbe valere la pena provarlo.

Per tua informazione, ho utilizzato Paraffin in un processo di compilazione e mi ha permesso di rimuovere il precedente processo di pulizia in 2-3 passaggi che coinvolgeva uno script PowerShell.

Altri suggerimenti

Per le implicazioni di aggiornamento delle configurazioni generate automaticamente, leggi questo.Il messaggio da portare a casa:

Windows Installer non consente di rimuovere i componenti in un aggiornamento minore

È difficile garantire che i componenti continuino a esistere se si genera automaticamente la configurazione.Pertanto devi scegliere tra la generazione automatica dei componenti e la possibilità di eseguire aggiornamenti minori.

Se disponi di alcuni componenti generati automaticamente, limitati agli aggiornamenti principali.Puoi usare questo campione di Rob come esempio.

Grazie per il background, non sapevo che stessero lavorando su una nuova versione di Wix.Secondo la pagina del progetto, non è ancora RTM, quindi ciò potrebbe spiegare i problemi che stai riscontrando.Spero di sentire gli sviluppatori WIX in una delle risposte.

Non posso aiutarti a utilizzare le funzionalità di heat.exe in fase di sviluppo.Tuttavia, mi sono trovato nella tua situazione e la mia soluzione era creare uno strumento che prendesse le informazioni sulla directory e sui file come input e generasse file di progetto Wix validi come output.Un file .vsproj è semplicemente un file XML e puoi utilizzare XSL, LINQ di C#, PowerShell o una serie di altri strumenti per eseguire il lavoro.Personalmente ho utilizzato C#/XMLDOM (pre-LINQ) per analizzare i file di progetto VS a questo scopo.

Buona fortuna,

Dave

Per la documentazione, consulta il file della guida installato con WiX: WiX.chm fornisce le informazioni più aggiornate (insieme alla riga di comando -help opzione).

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