[wix-users] Heat Command Issues / Limitations
Edwin Castro
egcastr at gmail.com
Mon Apr 9 09:42:01 PDT 2018
The help for heat.exe says there is a way to suppress all sorts of things.
There is also an option to explicitly keep empty directories implying they
are not harvested by default.
<quote>
C:\>"%WIX%bin\heat.exe" -?
Windows Installer XML Toolset Toolset Harvester version 3.9.1208.0
Copyright (c) Outercurve Foundation. All rights reserved.
usage: heat.exe harvestType harvestSource <harvester arguments> -o[ut]
sourceFile.wxs
Supported harvesting types:
dir harvest a directory
file harvest a file
payload harvest a bundle payload as RemotePayload
perf harvest performance counters
project harvest outputs of a VS project
reg harvest a .reg file
website harvest an IIS web site
Options:
-ag autogenerate component guids at compile time
-cg <ComponentGroupName> component group name (cannot contain spaces
e.g -cg MyComponentGroup)
-configuration configuration to set when harvesting the project
-directoryid overridden directory id for generated directory elements
-dr <DirectoryName> directory reference to root directories (cannot
contain spaces e.g. -dr MyAppDirRef)
-ext <extension> extension assembly or "class, assembly"
-g1 generated guids are not in brackets
-generate
specify what elements to generate, one of:
components, container, payloadgroup, layout, packagegroup
(default is components)
-gg generate guids now
-indent <N> indentation multiple (overrides default of 4)
-ke keep empty directories
-nologo skip printing heat logo information
-out specify output file (default: write to current directory)
-platform platform to set when harvesting the project
-pog
specify output group of VS project, one of:
Binaries,Symbols,Documents,Satellites,Sources,Content
This option may be repeated for multiple output groups.
-projectname overridden project name to use in variables
-scom suppress COM elements
-sfrag suppress fragments
-srd suppress harvesting the root directory as an element
-sreg suppress registry harvesting
-suid suppress unique identifiers for files, components, & directories
-svb6 suppress VB6 COM elements
-sw<N> suppress all warnings or a specific message ID
(example: -sw1011 -sw1012)
-swall suppress all warnings (deprecated)
-t transform harvested output with XSL file
-template use template, one of: fragment,module,product
-v verbose output
-var <VariableName> substitute File/@Source="SourceDir" with a
preprocessor or a wix variable
(e.g. -var var.MySource will become
File/@Source="$(var.MySource)\myfile.txt" and
-var wix.MySource will become File/@Source="!(wix.MySource)\myfile.txt"
-wixvar generate binder variables instead of preprocessor variables
-wx[N] treat all warnings or a specific message ID as an error
(example: -wx1011 -wx1012)
-wxall treat all warnings as errors (deprecated)
-? | -help this help information
For more information see: http://wixtoolset.org/
</quote>
Since heat.exe is producing an XML file and those things tend to be created
in memory and then later saved to disk as one operation I would expect
heat.exe would eventually start having issues depending on how much memory
the harvesting requires. Actual limits probably vary depending on the
details of the specific files getting harvested and perhaps the command
line options used. I'd definitely recommend dividing up your harvesting
into multiple harvests and compose them with ComponentGroupRef later on. I
am calling heat twice to harvest data files versus binary files just to
keep stuff organized even though I'm not having memory issues.
--
Edwin G. Castro
On Mon, Apr 9, 2018 at 9:22 AM, Ven H via wix-users <
wix-users at lists.wixtoolset.org> wrote:
> Actually, the total size of the folder is actually around 1.5 GB and the
> total file count is around 42,000. There are around 3200 folders included.
> Is Heat capable of handling this volume? If so, are there any dos and
> don'ts and is there any option / switch which should or should not be used
> to harvest this huge volume of files? Also, is there a need to split and if
> so, how?
> Also, if there are empty folders, then will heat harvest them or ignore
> them? Please advise. Also, I came across a link which seems to briefly
> touch upon some of these, but completely. It will be great, if anyone can
> please help.
>
> https://blogs.msdn.microsoft.com/icumove/2009/05/31/right-
> corner-wix-heat-left-corner-thousands-of-files/
>
> Regards,
> Venkatesh
>
> On Mon, Apr 9, 2018 at 6:50 PM, Ven H <venh.123 at gmail.com> wrote:
>
> > I have a folder with lots of nested sub folders with files inside. The
> > files include DLLs, COMs, images, C# source code, config files, XML
> files,
> > JS, CSS, HTML, asp, aspx and so on. The size of the outermost folder is
> > around 1.4 GB. When I am running Heat command on this, it does throw some
> > warnings on some DLLs and COMs. Also, for a few files, the heat command
> > seems enormous amount of time. I am not able to figure out why this is
> > happening or how to troubleshoot this. If you have any idea, can you
> please
> > help?
> >
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant
> http://www.firegiant.com/
>
More information about the wix-users
mailing list