I have a current build process which does a .NET build using MSBuild and then I end up with all my project DLLs/EXEs and 3rd party DLLs in the same directory with some resources in a sub-directory.
I would like to package this bundle up into an MSI. I have looked around and found WiX and it has nant tasks available. However it appears I need to maintain a .wxs file with references to the full list of DLLs. I would really like to avoid having to manual maintain this file or any other file.
I actually have many projects that use a shared build script so every project builds in a consistent fashion. I would therefore like the MSI step to be automated as well otherwise every project has to maintain the .wxs file with the current DLL list + any resource files.
Is it possible to use WiX or another any tool where I can just point it at a directory and get it to package every file/sub-directory without needing a config file?
Refer to the documentation for Heat (part of Wix) and use that in your build process.
As an example, something like this should work:
heat.exe dir C:\Build\Release -srd -ag -suid -cg AutoHarvestCG -out c:\Build\Setup\AutoHarvest.wxs
Then AutoHarvest.wxs
will be automatically generated and contain all files from C:\Source\Release
under a ComponentGroup
called AutoHarvestCG
which you can include with a ComponentGroupRef
element in any Feature element.
You'll still have to maintain a .wxs file with your Product, Package, and Feature information, along with any custom actions you might have.