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="&lt;Parameter Name='FolderName' Value='%(BU.Folder)'/&gt;"
        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

Reply via email to