The source .wxs file that Heat.exe generates, does not contain Package Id. I was therefore thinking of passing a new Guid every time the tool is run. Is there any way Heat.exe can set Package Id in the .wxs file?
Thanks for the list of reference books. On Fri, Dec 10, 2010 at 2:01 PM, Edwin G. Castro [via Windows Installer XML (WiX) toolset] <ml-node+5824258-1220359716-306...@n2.nabble.com<ml-node%2b5824258-1220359716-306...@n2.nabble.com> > wrote: > <xsl:template match="wix:Package"> Will match the Package element itself. > You'll need to copy the element, *then* add the attribute to the copied > element. > > <xsl:template match="wix:Package"> > <xsl:copy> > <xsl:apply-templates select="@*"/> > <xsl:attribute name="Id">$(var.PackageId)</xsl:attribute> > </xsl:copy> > </xsl:template> > > A couple of comments: > > 1.) Consider reading Learning XSLT and XSLT Cookbook. Great books! > 2.) Consider *not* setting Package/@Id. You should let WiX generate a new > Package/@Id on every build of your package as per the Windows Installer > documentation. > > Edwin G. Castro > Software Developer - Staff > Electronic Banking Services > Fiserv > Office: 503-746-0643 > Fax: 503-617-0291 > www.fiserv.com > Please consider the environment before printing this e-mail > > > -----Original Message----- > > From: sangeeta1 [mailto:[hidden > > email]<http://user/SendEmail.jtp?type=node&node=5824258&i=0>] > > > Sent: Friday, December 10, 2010 10:18 AM > > To: [hidden email]<http://user/SendEmail.jtp?type=node&node=5824258&i=1> > > Subject: Re: [WiX-users] Heat.exe - How to pass Product Manufacturer, > > Name, Title, version > > > > > > The Wix schema does not let me add a attribute to Package though. I want > to > > assign a package Id to the msi. > > > > <xsl:template match="wix:Package"> > > <xsl:attribute name="Id">$(var.PackageId)</xsl:attribute> > > </xsl:template> > > > > With you example, I am able to edit the Product name. thanks. > > <xsl:template match="wix:Product/@Name"> > > <xsl:attribute name="Name">$(var.ProductNameName)</xsl:attribute> > > </xsl:template> > > > > > > > > On Fri, Dec 10, 2010 at 12:55 PM, Blair-2 [via Windows Installer XML > (WiX) > > toolset] <[hidden > > email]<http://user/SendEmail.jtp?type=node&node=5824258&i=2><ml- > > > [hidden email] <http://user/SendEmail.jtp?type=node&node=5824258&i=3>> > > > wrote: > > > > > Add xmlns:wix="http://schemas.microsoft.com/wix/2006/wi" in the root > > > element of your XSLT and change your template to: > > > > > > <xsl:template match="wix:packa...@name"> > > > <xsl:attribute name="Name">$(var.ProductName)</xsl:attribute> > > > </xsl:template> > > > > > > > > > -----Original Message----- > > > From: sangeeta1 [mailto:[hidden > > > email]<http://user/SendEmail.jtp?type=node&node=5824029&i=0>] > > > > > > Sent: Friday, December 10, 2010 9:38 AM > > > To: [hidden email] > > > <http://user/SendEmail.jtp?type=node&node=5824029&i=1> > > > Subject: Re: [WiX-users] Heat.exe - How to pass Product Manufacturer, > > > Name, Title, version > > > > > > > > > Thanks a lot for these details! > > > > > > Taking your Manufacturer xsl as a baseline example, I tried to replace > > > the Name attribute in <Product> but really made no progress. I got > > > this crappy code to work, but would like something like this. > > > > > > <xsl:template match="packa...@name"> > > > <xsl:attribute name="Name">$(var.ProductName)</xsl:attribute> > > > </xsl:template> > > > > > > > > > I got this to work, but I do not like checking for 'PUT-PRODUCT-NAME- > > HERE' > > > constant. > > > <xsl:template match="@Name[.='PUT-PRODUCT-NAME-HERE']"> > > > <xsl:attribute name="Name">$(var.ProductName)</xsl:attribute> > > > </xsl:template> > > > > > > > > > Also, I want to insert an attribute in the <Package> element, and this > > > code > > > > > > again does not work. > > > <xsl:template match="Package"> > > > <xsl:attribute name="Id">$(var.PackageId)</xsl:attribute> > > > </xsl:template> > > > > > > Any idea what I am missing here? I should confess, this is the first > > > time I > > > > > > am writing an Xsl transform. > > > > > > thanks, > > > sangeeta > > > > > > > > > > > > > > > > > > On Thu, Dec 9, 2010 at 2:00 PM, Edwin G. Castro [via Windows Installer > > > XML > > > (WiX) toolset] <[hidden > > > email]<http://user/SendEmail.jtp?type=node&node=5824029&i=2> > > > <[hidden email] > > > <http://user/SendEmail.jtp?type=node&node=5824029&i=3>> > > > > wrote: > > > > > > > Here are your options: > > > > > > > > 1.) Use a XLST transform to change the generated wxs > > > > 2.) Use -var to specify a preprocessor variable (such as > > > > var.MySource) > > > and > > > > specify the value for MySource on the command line to candle.exe > > > > (see the > > > -d > > > > switch) > > > > 3.) Specify a base path when calling light.exe (see the -b switch) > > > > > > > > Option three is interesting because you don't use the -var parameter > > > > to heat.exe at all. Instead you tell light.exe to use one or more > > > > base paths > > > as > > > > the roots to look for files (you can specify more than one). > > > > > > > > Edwin G. Castro > > > > Software Developer - Staff > > > > Electronic Banking Services > > > > Fiserv > > > > Office: 503-746-0643 > > > > Fax: 503-617-0291 > > > > www.fiserv.com > > > > P Please consider the environment before printing this e-mail > > > > > > > > > -----Original Message----- > > > > > From: sangeeta1 [mailto:[hidden email]< > > > http://user/SendEmail.jtp?type=node&node=5820142&i=0>] > > > > > > > > > Sent: Wednesday, December 08, 2010 8:47 PM > > > > > To: [hidden email]< > > > http://user/SendEmail.jtp?type=node&node=5820142&i=1> > > > > > Subject: Re: [WiX-users] Heat.exe - How to pass Product > > > > > Manufacturer, Name, Title, version > > > > > > > > > > > > > > > After trying out an example, I see the significance of the -var > > > variable. > > > > > > > > > > > > > > Regarding you example in using -var > > > > > > > > > > How can I replace the value of "Source" to a physical path of > > > > > the > > > root > > > > folder > > > > > (like c:\temp\test) without having to use a wix variable > var.MySource? > > > I > > > > am > > > > > automating the generation of msi given a set of installable files. > > > > > I > > > will > > > > be > > > > > invoking these commands from .net program. > > > > > > > > > > many thanks for your help on this.. > > > > > > > > > > > > > > > On Wed, Dec 8, 2010 at 5:01 PM, Edwin G. Castro [via Windows > > > > > Installer > > > > XML > > > > > (WiX) toolset] <[hidden email]< > > > http://user/SendEmail.jtp?type=node&node=5820142&i=2><ml- > > > > > > > > > [hidden email] > > > > > <http://user/SendEmail.jtp?type=node&node=5820142&i=3>> > > > > > > > > > wrote: > > > > > > > > > > > Heat does not generate a <Product/> element. > > > > > > > > > > > > Heat /? shows the following documentation for -var: > > > > > > > > > > > > -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" > > > > > > > > > > > > This does text transformation on the generated output wxs file. > > > > > > I created an empty text file called test.txt and used the > > > > > > following command line to harvest it using heat.exe: > > > > > > > > > > > > heat file test.txt -out test.wxs > > > > > > > > > > > > Here are the contents of test.wxs: > > > > > > > > > > > > <?xml version="1.0" encoding="utf-8"?> <Wix > > > > > > xmlns="http://schemas.microsoft.com/wix/2006/wi"> > > > > > > <Fragment> > > > > > > <DirectoryRef Id="TARGETDIR"> > > > > > > <Directory Id="dir22FE4E6795D49A83D8CC3F97AEACA344" > > > > > Name="code" > > > > > > /> > > > > > > </DirectoryRef> > > > > > > </Fragment> > > > > > > <Fragment> > > > > > > <DirectoryRef Id="dir22FE4E6795D49A83D8CC3F97AEACA344"> > > > > > > <Component Id="cmp5BA64E6B74419477D4B75A1E802397FC" > > > > > > Guid="PUT-GUID-HERE"> > > > > > > <File Id="fil67D465DE6C69EA3B3CD0B7487E6132B6" > > > > > > KeyPath="yes" Source="SourceDir\code\test.txt" /> > > > > > > </Component> > > > > > > </DirectoryRef> > > > > > > </Fragment> > > > > > > </Wix> > > > > > > > > > > > > Notice that File/@Source="SourceDir\code\test.txt" > > > > > > > > > > > > If use -var like this: > > > > > > > > > > > > heat file test.txt -out test.wxs -var var.CodeDir > > > > > > > > > > > > Then I get this: > > > > > > > > > > > > <?xml version="1.0" encoding="utf-8"?> <Wix > > > > > > xmlns="http://schemas.microsoft.com/wix/2006/wi"> > > > > > > <Fragment> > > > > > > <DirectoryRef Id="TARGETDIR"> > > > > > > <Directory Id="dir22FE4E6795D49A83D8CC3F97AEACA344" > > > > > Name="code" > > > > > > /> > > > > > > </DirectoryRef> > > > > > > </Fragment> > > > > > > <Fragment> > > > > > > <DirectoryRef Id="dir22FE4E6795D49A83D8CC3F97AEACA344"> > > > > > > <Component Id="cmp5BA64E6B74419477D4B75A1E802397FC" > > > > > > Guid="PUT-GUID-HERE"> > > > > > > <File Id="fil67D465DE6C69EA3B3CD0B7487E6132B6" > > > > > > KeyPath="yes" Source="$(var.CodeDir)\code\test.txt" /> > > > > > > </Component> > > > > > > </DirectoryRef> > > > > > > </Fragment> > > > > > > </Wix> > > > > > > > > > > > > Notice that File/@Source="$(var.CodeDir)\code\test.txt" just > > > > > > like the > > > > > > > > > documentation says. > > > > > > > > > > > > In a <Product/> element is *not* generated in either example. > > > > > > > > > > > > Edwin G. Castro > > > > > > Software Developer - Staff > > > > > > Electronic Banking Services > > > > > > Fiserv > > > > > > Office: 503-746-0643 > > > > > > Fax: 503-617-0291 > > > > > > www.fiserv.com > > > > > > P Please consider the environment before printing this e-mail > > > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > > > From: sangeeta1 [mailto:[hidden > > > > > > > > > email]<http://user/SendEmail.jtp?type=node&node=5816953&i=0>] > > > > > > > > > > > > > Sent: Wednesday, December 08, 2010 12:25 PM > > > > > > > To: [hidden > > > > > > > > > email]<http://user/SendEmail.jtp?type=node&node=5816953&i=1> > > > > > > > Subject: [WiX-users] Heat.exe - How to pass Product > > > > > > > Manufacturer, Name, Title, version > > > > > > > > > > > > > > > > > > > > > Hi all, > > > > > > > > > > > > > > I am trying to generate a wxs source file using Heat.exe > > > > > > > and wanted to > > > > > > > > > > > > > check if I can pass values for Manufacturer, Name, Title and > > > version > > > > > > > to heat.exe? I tried using -var argument, but does nt seem to > > > update > > > > > > > it to > > > > > > the > > > > > > > source file > > > > > > > > > > > > > > heat.exe dir c:\temp\Configuration\Files -ag -cg MyComp -ag > > > > > > > -gg -g1 > > > > > > > > > > -ke > > > > > > -var > > > > > > > Product/@Manufacturer=" <Product/@Manufacturer=%22>ABCD" > > - > > > > > template > > > > > > > product -out c:\temp\Configuration\wixauto\mainsource.wxs > > > > > > > > > > > > > > > > > > > > > thanks! > > > > > > > > > > > > > > -- > > > > > > > -- > > View this message in context: http://windows-installer-xml-wix- > > toolset.687559.n2.nabble.com/Heat-exe-How-to-pass-Product- > > Manufacturer-Name-Title-version-tp5816654p5824105.html > > Sent from the wix-users mailing list archive at Nabble.com. > > > ------------------------------------------------------------------------------ > > > Oracle to DB2 Conversion Guide: Learn learn about native support for > > PL/SQL, new data types, scalar functions, improved concurrency, built-in > > packages, OCI, SQL*Plus, data movement tools, best practices and more. > > http://p.sf.net/sfu/oracle-sfdev2dev > > _______________________________________________ > > WiX-users mailing list > > [hidden email] <http://user/SendEmail.jtp?type=node&node=5824258&i=4> > > https://lists.sourceforge.net/lists/listinfo/wix-users > ------------------------------------------------------------------------------ > > Oracle to DB2 Conversion Guide: Learn learn about native support for > PL/SQL, > new data types, scalar functions, improved concurrency, built-in packages, > OCI, SQL*Plus, data movement tools, best practices and more. > http://p.sf.net/sfu/oracle-sfdev2dev > _______________________________________________ > WiX-users mailing list > [hidden email] <http://user/SendEmail.jtp?type=node&node=5824258&i=5> > https://lists.sourceforge.net/lists/listinfo/wix-users > > > ------------------------------ > View message @ > http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Heat-exe-How-to-pass-Product-Manufacturer-Name-Title-version-tp5816654p5824258.html > > To start a new topic under wix-users, email > ml-node+687560-220571316-306...@n2.nabble.com<ml-node%2b687560-220571316-306...@n2.nabble.com> > To unsubscribe from wix-users, click > here<http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=687560&code=c25tc25tMTBAZ21haWwuY29tfDY4NzU2MHwtODkyOTExNTcy>. > > -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Heat-exe-How-to-pass-Product-Manufacturer-Name-Title-version-tp5816654p5824290.html Sent from the wix-users mailing list archive at Nabble.com. ------------------------------------------------------------------------------ Oracle to DB2 Conversion Guide: Learn learn about native support for PL/SQL, new data types, scalar functions, improved concurrency, built-in packages, OCI, SQL*Plus, data movement tools, best practices and more. http://p.sf.net/sfu/oracle-sfdev2dev _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users