Hey Kyle, Have you considered using MSBuild? Although there isn't support in heat nor in the WiX targets for this yet, you could use some feature of ItemGroups in MSBuild and its expansion to do what you need...at least I think you could. I haven't actually tried it <grin/>
I am working on an extension for the community that will help this out. It is quite behind schedule, but it is coming. Anything that could help people out in the mean time would be great! http://blogs.msdn.com/icumove/archive/2009/05/31/right-corner-wix-heat-left-corner-thousands-of-files.aspx Thanks, Brian Rogers "Intelligence removes complexity." - Me http://blogs.msdn.com/icumove <-- NEW On Sun, Jan 10, 2010 at 7:38 AM, Kyle Huey <ksh...@ufl.edu> wrote: > Hey Brian, > > This sounds like a great idea. I think combined with something like dir > /ad > /s to iterate over the directories it can do what I want. Thanks! > > - Kyle > > On Sat, Jan 9, 2010 at 7:10 PM, Brian Rogers <rogers.br...@gmail.com> > wrote: > > > Hey Everyone, > > > > Why can't you heat the sub directories "greeneggs" and "ham" directly and > > use the -srd and -dr FOO switches? I do understand if there are > additional > > sub directories this might be a bit more difficult. However, you could > > re-arrange your source directories to handle these issues if necessary, > no? > > > > Thanks, > > > > Brian Rogers > > "Intelligence removes complexity." - Me > > http://blogs.msdn.com/icumove <-- NEW > > > > > > On Fri, Jan 8, 2010 at 7:52 PM, Blair <os...@live.com> wrote: > > > > > Looking at your situation, this is what looks to me to be your > solution: > > > > > > 1- I'm assuming that your transformed heat outputs don't have any > > Directory > > > elements with an Id of either localized or neutral. Remove them if they > > > exist in your transform. > > > 2- Under your Product element (or some other manually authored location > > > that > > > is linked into your final MSI): > > > <Directory Id='INSTALLDIR' ...><!--INSTALLDIR will likely live under > > > other Directory element(s) as needed to create a correct directory > > tree--> > > > <Directory Id='foo' .../> > > > <Directory Id='bar' .../> > > > </Directory> > > > 3- In your transformed localized sources from heat: > > > <DirectoryRef Id='foo'> > > > ... > > > <Directory Id='greeneggs'> > > > ... > > > </Directory> > > > ... > > > </Directory> > > > <DirectoryRef Id='bar'> > > > ... > > > </Directory> > > > > > > 4- In your transformed neutral sources from heat: > > > <DirectoryRef Id='foo'> > > > ... > > > <Directory Id='ham'> > > > ... > > > </Directory> > > > ... > > > </Directory> > > > > > > So your transform will need to look at the directory tree that heat > > > produces > > > and transform that to get the above results (by altering at and above > the > > > level of the children of installdir and leaving the others unless you > > start > > > creating some of them as well). > > > > > > If you have files in installdir as well as the above subdirs you will > > need > > > to also declare a DirectoryRef for that directory so that the > fragment(s) > > > from heat can be linked into your wixlibs. The only directories you > have > > to > > > transform/manually deal with are those that are in common. The above > lets > > > you simply harvest the unique directories as they are laid out without > > > having to manually deal with them. > > > > > > -----Original Message----- > > > From: Kyle Huey [mailto:ksh...@ufl.edu] > > > Sent: Friday, January 08, 2010 5:48 PM > > > To: General discussion for Windows Installer XML toolset. > > > Subject: Re: [WiX-users] Using Heat multiple times => Duplicate > symbols > > > > > > Yeah, this is more or less what I'm doing. The issue is that I still > > need > > > to define the directory structure somewhere. Zach suggests defining it > > > manually which is probably the best solution but unfortunately isn't > > really > > > an option for what I'm doing. What would be ideal is if light would > > handle > > > a duplicate symbol definition if the symbols are identical (same ID and > > > attributes, etc.) by outputting the symbol once instead of choking. Of > > > course, there may be good reasons I haven't thought of not to do that - > > I'm > > > not sure. I'm hoping that someone has solved the same problem in a > > manner > > > that avoids this problem. > > > > > > - Kyle > > > > > > On Fri, Jan 8, 2010 at 6:47 PM, Blair <os...@live.com> wrote: > > > > > > > How about using XSLT to change the <Directory Id="foo" ...> into > > > > <DirectoryRef Id="foo"> in the localized wixlib's wxs file from heat? > > > > > > > > -----Original Message----- > > > > From: Kyle Huey [mailto:ksh...@ufl.edu] > > > > Sent: Friday, January 08, 2010 7:09 AM > > > > To: wix-users@lists.sourceforge.net > > > > Subject: [WiX-users] Using Heat multiple times => Duplicate symbols > > > > > > > > Hello all, > > > > > > > > I am using heat to generate the source for two .wixlibs which are > > lighted > > > > together with some other pieces to form my final MSI. Heat is used > on > > > two > > > > different directories at build time. One of these directories holds > > all > > > of > > > > my language specific files "/localized/" and the other holds all of > my > > > > language neutral files "/neutral/". Creating a setup this way allows > > me > > > to > > > > generate the language neutral .wixlib just once for every locale I > > > support. > > > > The problem is that the directory structure within those directories > > has > > > > some (but not complete) overlap. e.g. > > > > > > > > localized > > > > foo > > > > greeneggs > > > > bar > > > > > > > > neutral > > > > foo > > > > ham > > > > > > > > becomes on the user's computer > > > > installdir > > > > foo > > > > greeneggs > > > > ham > > > > bar > > > > > > > > This gives me a duplicate symbol error at foo when I try to link the > > two > > > > wixlibs together. I can't just throw away the directory fragments > from > > > one > > > > heat run because neither structure is a subset of the other. I also > > > don't > > > > want to tell light to suppress the duplicate symbols error (and I > don't > > > > know > > > > that that will produce a working MSI). Really the only solution I've > > > come > > > > up with is to use XSLT to eliminate all of the directory elements > from > > > the > > > > first two runs and then run heat again against the combined result > and > > > use > > > > XSLT on that third run to eliminate all of the non-directory > elements. > > > > > > > > That seems suboptimal at best. Anyone have any better ideas? > > > > > > > > Thanks, > > > > > > > > - Kyle > > > > > > > > > > > > > > > > > ---------------------------------------------------------------------------- > > > > -- > > > > This SF.Net email is sponsored by the Verizon Developer Community > > > > Take advantage of Verizon's best-in-class app development support > > > > A streamlined, 14 day to market process makes app distribution fast > and > > > > easy > > > > Join now and get one step closer to millions of Verizon customers > > > > http://p.sf.net/sfu/verizon-dev2dev > > > > _______________________________________________ > > > > WiX-users mailing list > > > > WiX-users@lists.sourceforge.net > > > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > > > > > > > > > > > > > > > > > > > > > ---------------------------------------------------------------------------- > > > -- > > > > This SF.Net email is sponsored by the Verizon Developer Community > > > > Take advantage of Verizon's best-in-class app development support > > > > A streamlined, 14 day to market process makes app distribution fast > and > > > > easy > > > > Join now and get one step closer to millions of Verizon customers > > > > http://p.sf.net/sfu/verizon-dev2dev > > > > _______________________________________________ > > > > WiX-users mailing list > > > > WiX-users@lists.sourceforge.net > > > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > > > > > > > > > ---------------------------------------------------------------------------- > > > -- > > > This SF.Net email is sponsored by the Verizon Developer Community > > > Take advantage of Verizon's best-in-class app development support > > > A streamlined, 14 day to market process makes app distribution fast and > > > easy > > > Join now and get one step closer to millions of Verizon customers > > > http://p.sf.net/sfu/verizon-dev2dev > > > _______________________________________________ > > > WiX-users mailing list > > > WiX-users@lists.sourceforge.net > > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > > > > > > > > > > > ------------------------------------------------------------------------------ > > > This SF.Net email is sponsored by the Verizon Developer Community > > > Take advantage of Verizon's best-in-class app development support > > > A streamlined, 14 day to market process makes app distribution fast and > > > easy > > > Join now and get one step closer to millions of Verizon customers > > > http://p.sf.net/sfu/verizon-dev2dev > > > _______________________________________________ > > > WiX-users mailing list > > > WiX-users@lists.sourceforge.net > > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > > > > ------------------------------------------------------------------------------ > > This SF.Net email is sponsored by the Verizon Developer Community > > Take advantage of Verizon's best-in-class app development support > > A streamlined, 14 day to market process makes app distribution fast and > > easy > > Join now and get one step closer to millions of Verizon customers > > http://p.sf.net/sfu/verizon-dev2dev > > _______________________________________________ > > WiX-users mailing list > > WiX-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > ------------------------------------------------------------------------------ > This SF.Net email is sponsored by the Verizon Developer Community > Take advantage of Verizon's best-in-class app development support > A streamlined, 14 day to market process makes app distribution fast and > easy > Join now and get one step closer to millions of Verizon customers > http://p.sf.net/sfu/verizon-dev2dev > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > ------------------------------------------------------------------------------ This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users