2013-05-10 10 views
5

Utilizziamo HEAT per creare un file per il nostro programma di installazione del progetto Web. Voglio sapere se c'è un modo in cui posso includere il file nella compilation, ma non incluso nel progetto.È possibile includere un file generato in un progetto WiX senza aggiungerlo come file esistente

Il motivo per cui ho bisogno di questo è che non vorrei controllare il file sul nostro controllo sorgente, ma farlo compilare quando costruiamo il wixproj. Altrimenti dobbiamo dirottare/estrarre il file per costruire il progetto in modo affidabile.

risposta

5

Se si utilizza MSBuild e un .wixproj per creare il file .MSI, sarà necessario ottenere l'output da HEAT da elencare in un elemento Compile in .wixproj. Se il file non è incluso, non verrà compilato nel .MSI finale.

Fortunatamente, MSBuild offre alcune opzioni per includere dinamicamente gli elementi. Ad esempio, si potrebbe avere un obiettivo personalizzato nel .wixproj che corre HEAT e aggiunge l'uscita

<Target Name='RunHeat'> 
    <Exec Command='heat.exe param param param -o path\to\output.wxs' /> 
    <ItemGroup> 
     <Compile Include='path\to\output.wxs' /> 
    </ItemGroup> 
</Target> 

Ora, se si ottiene l'obiettivo RunHeat da eseguire prima della Compile bersaglio in wix.targets quindi la voce Compile generato in RunHeat volontà essere incluso nella destinazione Compile. Data la flessibilità di MSBuild, ci sono probabilmente una dozzina di altri modi in cui puoi svolgere questo compito.

Spero che ti aiuti e buona fortuna!

+1

Anche OMG l'uomo stesso ha risposto alla mia domanda;) – Spence

+0

Ho lasciato un altro comando lì che stava forzando la presenza del file – Spence

Problemi correlati