In your existing target, where you are using HeatDirectory, you could try something similar to:
<ItemGroup> <GeneratedFile Include="$(IntermediateOutputPath)All.wxs" /> </ItemGroup> <DateCompare LHS="%(GeneratedFile.ModifiedTime)" RHS="$(ReleaseTimestamp)"> <Output TaskParameter="Result" PropertyName="UpToDate" /> </DateCompare> <Message Text="UpToDate: $(UpToDate)" /> <HeatDirectory NoLogo="true" ToolPath="$(WixToolPath)" VerboseOutput="true" AutogenerateGuids="true" GenerateGuidsNow="false" OutputFile="$(IntermediateOutputPath)All.wxs" SuppressFragments="true" Directory="Z:\$(Version)\Data\" ComponentGroupName="ProductComponents" DirectoryRefId="CommonData" PreprocessorVariable="var.SourceDataFolder" SuppressCom="true" SuppressRootDirectory="true" SuppressRegistry="true" Condition =" '$(UpToDate)' != 'Equal' "/> <Touch Files="$(IntermediateOutputPath)All.wxs" Time="$(ReleaseTimestamp)" Condition=" '$(UpToDate)' != 'Equal' "/> <XSLTransformation XslInputPath="AddDiskId-Base.xslt" XmlInputPaths="$(IntermediateOutputPath)All.wxs" OutputPaths="$(IntermediateOutputPath)%(BU.Folder).wxs" Parameters="<Parameter Name='FolderName' Value='%(BU.Folder)'/>" Condition=" ('$(UpToDate)' != 'Equal') Or (Exists('$(IntermediateOutputPath)%(BU.Folder).wxs') == False) "/> <!-- Compare $(IntermediateOutputPath) to $(OutputFolder) and only copy if checksum is different --> <CompareAndCopyAsNeeded SourceFile="$(IntermediateOutputPath)%(BU.Folder).wxs" DestinationFile="$(OutputPath)%(BU.Folder).wxs" /> Note, DateCompare is a simple custom MSBuild task which compares to dates for equality giving results of <, =, or >. If your Heat output is under version control, you may have to create an additional intermediate file to store timestamps info on. I also broke apart my project such that one common project does the HeatDirectory task, and all the transforms. I then conditionally copy the output of this stub project to the installer directories if and only if the contents of the transformed files have changed (another custom build task, MD5 compare and copy if different or missing). The application sub-installers then just reference the stub project and consume the output. -----Original Message----- From: Marco Tognacci [mailto:mark...@live.it] Sent: Monday, September 22, 2014 5:54 PM To: WiX - users Subject: Re: [WiX-users] HeatDirectory optimization can you explain with more details how to make this with MSBuild?and how to record the timestamp, now I'm using TFS to store my files.Thanks > From: jacob.hoo...@greenheck.com > To: wix-users@lists.sourceforge.net > Date: Mon, 22 Sep 2014 20:59:29 +0000 > Subject: Re: [WiX-users] HeatDirectory optimization > > Use MSBuild, specifically the XSLTransform task. > > To optimize it even more, you can store the timestamp of the file generated > with the timestamp used to check out from version control. In which case you > don't have to re-run the HeatDirectory task every time you run your build > (unless the timestamp changes or the file is removed). > > -----Original Message----- > From: Marco Tognacci [mailto:mark...@live.it] > Sent: Monday, September 22, 2014 3:14 PM > To: WiX - users > Subject: [WiX-users] HeatDirectory optimization > > In my setup project I use <HeatDirectory> in the msi project definition to > Harves a directory then I apply a transformation xslt to filter the result in > the wsx file. > I made this with several different filter but using the main root directory > for all of them, in this case the harvesting of the main root is made many > times. > To speedup the building process I'd like to make the harvesting of the root > directory only one time and them to the complete wsx file I want to apply > each filter to produce the final wsx file. > Is this possible in some way using heat? > The only solution that I have found is to use a program to apply the xslt > transformation, but in this way I have to use an external tool, I'd like to > have an integrated tool inside WiX > Thanks. > ---------------------------------------------------------------------- > -------- Meet PCI DSS 3.0 Compliance Requirements with EventLog > Analyzer Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI > DSS Reports Are you Audit-Ready for PCI DSS 3.0 Compliance? Download > White paper Comply to PCI DSS 3.0 Requirement 10 and 11.5 with > EventLog Analyzer > http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg. > clktrk _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > > ---------------------------------------------------------------------- > -------- Meet PCI DSS 3.0 Compliance Requirements with EventLog > Analyzer Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI > DSS Reports Are you Audit-Ready for PCI DSS 3.0 Compliance? Download > White paper Comply to PCI DSS 3.0 Requirement 10 and 11.5 with > EventLog Analyzer > http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg. > clktrk _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users