2011-04-06 4 views
2

J'ai un processus de construction en cours qui fait un .NET construire en utilisant MSBuild et puis je me retrouve avec toutes mes DLL/EXE de projet et DLL tiers dans le même répertoire avec quelques ressources dans un sous -annuaire.Le chemin le plus rapide pour créer MSI avec nant

Je voudrais emballer ce paquet dans un MSI. J'ai regardé autour et trouvé WiX et il a des tâches nant disponibles. Cependant, il semble que je dois maintenir un fichier .wxs avec des références à la liste complète des DLL. Je voudrais vraiment éviter d'avoir à maintenir manuellement ce fichier ou tout autre fichier.

En fait, j'ai beaucoup de projets qui utilisent un script de construction partagé afin que chaque projet se construit de manière cohérente. Je voudrais donc que l'étape MSI soit également automatisée, sinon chaque projet doit maintenir le fichier .wxs avec la liste de DLL actuelle + tous les fichiers de ressources.

Est-il possible d'utiliser WiX ou un autre outil quelconque où je peux simplement le pointer dans un répertoire et l'obtenir pour emballer chaque fichier/sous-répertoire sans avoir besoin d'un fichier de configuration?

+1

Vous devez examiner la chaleur et les tâches NAnt/MSBuild associées. Il y a beaucoup de questions ici sur SO concernant Wix et Heat. – heavyd

+0

Voici un lien vers la tâche [HeatFile Task] (http://wix.sourceforge.net/manual-wix3/msbuild_task_reference_heatfile.htm) Documentation de l'encapsuleur XML – ghostJago

Répondre

5

Référez-vous à the documentation for Heat (partie de Wix) et utilisez-le dans votre processus de construction.

À titre d'exemple, quelque chose comme cela devrait fonctionner:

heat.exe dir C:\Build\Release -srd -ag -suid -cg AutoHarvestCG -out c:\Build\Setup\AutoHarvest.wxs 

Ensuite AutoHarvest.wxs sera généré automatiquement et contiennent tous les fichiers de C:\Source\Release sous un ComponentGroup appelé AutoHarvestCG que vous pouvez inclure un élément ComponentGroupRef dans tout élément Feature .

Vous devrez toujours gérer un fichier .wxs avec vos informations sur les produits, les packages et les fonctionnalités, ainsi que les actions personnalisées que vous pourriez avoir.

Questions connexes