我有一个当前的构建过程,它使用MSBuild进行.NET构建,然后我最终将所有项目DLL / EXE和第三方DLL放在同一目录中,子目录中有一些资源。
我想把这个包打包成一个MSI。我环顾四周,发现了WiX,它还没有任何可用的任务。但是,似乎我需要维护一个.wxs文件,其中包含对DLL完整列表的引用。我真的想避免手动维护这个文件或任何其他文件。
我实际上有许多使用共享构建脚本的项目,因此每个项目都以一致的方式构建。因此,我希望MSI步骤自动化,否则每个项目都必须使用当前DLL列表+任何资源文件维护.wxs文件。
是否可以使用WiX或其他任何工具,我可以将其指向一个目录并让它打包每个文件/子目录而不需要配置文件?
答案 0 :(得分: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
的{{1}}下的所有文件,您可以在其中包含ComponentGroupRef
元素特征元素。
您仍需要维护包含产品,产品包和功能信息的.wxs文件,以及您可能拥有的任何自定义操作。