I am using WiX (3.9R2) integrated in VS2013 to produce an Msi Installer for my VS solution. The solution comprises about 30 c# projects.
I created a separate WiX project within the solution to produce the installer. To generate the .wxs files for all the other projects, i am using heat with harvest type project. Currently, heat is called from a batch file, which is called as prebuild step. The batch file looks like this: ------- snip snip -------------- PATH "%WIX%bin"" Set COMMONARGS=-ag -nologo -pog Binaries -pog Satellites -sfrag -srd -directoryid INSTALLFOLDER Set OUTDIR=GeneratedComponents heat project ..\..\..\Common\Infrastructure\Infrastructure.csproj %COMMONARGS% -out %OUTDIR%\Infrastructure.wxs heat project ..\..\..\Common\Interfaces\Interfaces.csproj %COMMONARGS% -out %OUTDIR%\Interfaces.wxs heat project ..\..\..\Common\SimplEditor\SimplEditor.csproj %COMMONARGS% -out %OUTDIR%\SimplEditor.wxs REM other invocations of heat for all other projects follow ------- snip snip -------------- Though this works nicely, i don't like it too much. Most disappointing is the need to supply the exact relative pathes to the various .csproj files. If the solution is refactored in the future, these pathes can easily break. However, i recently stumbled across the 'HeatProject Task'. AFAIK this should allow me to do the same thing by adding some code to the .wixproj file, and get rid of the batch file and the prebuild step. Regrettably, so far i could not find really enlightening documentation about what i have to add exactly. I must admit that i know nearly nothing about the innards of MSBuild (an currently have no time to fill that gap). The WiX Documenatton contains the following example code: <HeatProject NoLogo="$(HarvestProjectsNoLogo)" SuppressAllWarnings="$(HarvestProjectsSuppressAllWarnings)" SuppressSpecificWarnings="$(HarvestProjectsSuppressSpecificWarnings)" ToolPath="$(WixToolPath)" TreatWarningsAsErrors="$(HarvestProjectsTreatWarningsAsErrors)" TreatSpecificWarningsAsErrors="$(HarvestProjectsTreatSpecificWarningsAsErrors)" VerboseOutput="$(HarvestProjectsVerboseOutput)" AutogenerateGuids="$(HarvestProjectsAutogenerateGuids)" GenerateGuidsNow="$(HarvestProjectsGenerateGuidsNow)" OutputFile="$(IntermediateOutputPath)_%(_Project.Filename).wxs" SuppressFragments="$(HarvestProjectsSuppressFragments)" SuppressUniqueIds="$(HarvestProjectsSuppressUniqueIds)" Transforms="%(_Project.Transforms)" Project="@(_Project)" ProjectOutputGroups="%(_Project.ProjectOutputGroups)" /> There are several things i don't understand : - Do i have to provide values for all those 'Variables' starting with $(Harvest.... ? - Do i have to provide values for $(WixToolPath) and $(IntermediateOutputPath ? - If so, HOW and WHERE do i have to declare this values. ? - What about all that strings starting with %(_Project.... - should i replace _Project with a concrete project name - keeipng or omitting the _ ? - What about Project="@(_Project)" It would be a great help, if anybody sent me me a WORKING .wixproj file conatining one or more HeatProject elements ! thaks in advance, Martin -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Looking-for-working-HeatProject-Example-tp7600163.html Sent from the wix-users mailing list archive at Nabble.com. ------------------------------------------------------------------------------ One dashboard for servers and applications across Physical-Virtual-Cloud Widest out-of-the-box monitoring support with 50+ applications Performance metrics, stats and reports that give you Actionable Insights Deep dive visibility with transaction tracing using APM Insight. http://ad.doubleclick.net/ddm/clk/290420510;117567292;y _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users