2011-01-13 3 views
3

J'utilise Wix/Votive pour construire un programme d'installation pour ma solution .NET. J'inclus les binaires des autres projets (EXE et DLLs) en utilisant des références de projet (qui utilise en interne heat.exe je pense).Comment déployer des images natives (NGen) en utilisant Wix et les références de projet

Ce que je veux faire maintenant, c'est de pré-jiter tous les assemblages avec ngen.exe pendant l'installation. Selon l'aide Wix, cela peut être fait à travers le WiX .NET extensions library:

<Component Id="App.exe" Guid="PUT-GUID-HERE"> 
    <File Id="App.exe" Source="App.exe" KeyPath="yes"> 
     <netfx:NativeImage Id="ngen_App.exe" Platform="32bit" Priority="0" /> 
    </File> 
</Component> 

Maintenant, le problème est que les <File /> balises sont créés par heat.exe et je ne peux pas comprendre comment soit conseiller heat.exe pour générer le <NativeImage /> balise à l'intérieur ou comment référencer la balise <File /> générée et attacher la balise <NativeImage /> en externe. À l'heure actuelle, la seule façon dont je vois est de ne pas utiliser les références du projet, mais je voudrais bien évidemment les conserver.

Des suggestions? Merci!

Répondre

3

La chaleur n'est pas destinée à et ne supporte pas cette histoire. La plupart des gens utilisent Heat une fois pour faire la plus grande partie de la lourde tâche de créer le WXS et ensuite le maintenir comme code à partir de là. Certaines personnes aiment mettre ceci dans des processus de construction pour devenir dynamiques mais je suis vraiment contre cela pour des raisons qui peuvent être trouvées ailleurs si vous êtes intéressé. Donc faites-le comme cela ou écrivez un peu d'automatisation pour exécuter after heat qui utilise LINQ to XML (ou votre DOM XML favori) pour rechercher les éléments File qui sont des assemblages .NET et les marquer ensuite avec des éléments NativeImage enfants. Vous devrez également placer la déclaration d'espace de nom en haut du document.

Questions connexes