Come posso impostare la versione del programma di installazione WiX sulla versione di build corrente?

Ho scritto un’applicazione e il suo programma di installazione WiX e l’ho messa sotto controllo di versione usando subversion. Quando il programma di installazione di WiX viene compilato, voglio che il suo numero di versione sia la versione di build corrente dell’applicazione. Come posso realizzare questo? Ho usato c # per codificare l’applicazione.

NB Sto usando ccnet per build questo progetto

È ansible utilizzare Product / @ Version = “! (Bind.FileVersion.FileId)” (sostituire FileId con l’ Id del file da cui si desidera ottenere il numero di versione) e light.exe popolerà il valore con la versione del file a cui fa riferimento FileId .

Ho fatto questo in uno dei miei progetti scrivendo un’estensione per il preprocessore per leggere la versione del file dal mio eseguibile. Quindi il file WiX assomiglia a qualcosa:

     

Ho pubblicato il codice per in su CodePlex: http://wixfileversionext.codeplex.com/

Ecco un modo molto semplice per ottenere la versione del pacchetto Bootstrapper in modo che corrisponda a MyApp AssemblyVersion utilizzando una BeforeBuild Target DefineConstants e DefineConstants .

Bundle.wxs:

  

Bootstrapper.wixproj:

      BuildVersion=%(AssemblyVersion.Version)   

Nel caso in cui qualcuno stia cercando un vero esempio XML, questo funziona con gli assembly .NET (e non è necessario eseguire gli attributi Assembly o KeyPath). Ho eliminato il codice non correlato con i […] segnaposto:

   [...]      [...]  [...]      

Questo sembra abbastanza vicino a quello che stai cercando di realizzare. Vedi che l’equivalente è in cruise control.

http://www.ageektrapped.com/blog/setting-properties-for-wix-in-msbuild/