2011-04-06 94 views
2

我有一个当前的构建过程,它使用MSBuild进行.NET构建,然后我将所有项目DLLs/EXE和第三方DLL放在同一目录中,并且有一些子资源-目录。用nant创建MSI的最快途径

我想将这个包打包成MSI。我环顾四周,发现了WiX,并且它没有任何可用的任务。不过看起来我需要维护一个.wxs文件,并引用完整的DLL列表。我真的很想避免必须手动维护这个文件或任何其他文件。

我实际上有很多使用共享构建脚本的项目,因此每个项目都以一致的方式构建。因此,我想让MSI步骤自动化,否则每个项目都必须使用当前DLL列表+任何资源文件来维护.wxs文件。

是否有可能使用WiX或其他任何工具,我可以将它指向一个目录并让它打包每个文件/子目录而不需要配置文件?

+1

您需要查看热量及其相关的NAnt/MSBuild任务。关于Wix和Heat,关于SO有很多问题。 – heavyd 2011-04-07 03:38:05

+0

这里是[HeatFile Task]的链接(http://wix.sourceforge.net/manual-wix3/msbuild_task_reference_heatfile.htm)XML wrapper文档 – ghostJago 2011-08-25 13:18:40

回答

5

请参阅the documentation for Heat(Wix的一部分),并在构建过程中使用它。

作为一个例子,这样的事情应该工作:

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

然后AutoHarvest.wxs将自动生成,并从C:\Source\Release包含下ComponentGroup称为AutoHarvestCG的所有文件,你可以在任何功能元素一个ComponentGroupRef元素包括: 。

您仍然必须使用您的产品,软件包和功能信息以及您可能具有的任何自定义操作来维护.wxs文件。