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

Reply via email to