XSL has a steep learning curve starting out. I suggest using a separate command-line transform tool to test the XSL to make sure it works how you expect BEFORE trying to apply it as part of the heat process. You can get msxsl.exe from here: http://www.microsoft.com/downloads/details.aspx?familyid=2FB55371-C94E-4373-B0E9-DB4816552E41&displaylang=en
Here's a working XSL from WiX's examples\test\msbuild.heatproj, which might help you get started. This example preserves most of heat's generated code, but deletes a specific component by ID. <?xml version="1.0" ?> <xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:wix="http://schemas.microsoft.com/wix/2006/wi"> <!-- By default, copy all attributes and elements to the output. --> <xsl:template match="@*|*"> <xsl:copy> <xsl:apply-templates select="@*" /> <xsl:apply-templates select="*" /> </xsl:copy> </xsl:template> <!-- Override copy (do nothing) for elements with this Id, so they are omitted from the output. --> <xsl:template match="*...@id='TestProject.Sources.app.config']" /> </xsl:transform> While I wrote the code above, I'm far from an expert on XSL so I can't promise that it's the simplest/best possible way to do that. And I probably won't be able to help with coding a much more complex transform. -Jason- -----Original Message----- From: PoKrec [mailto:p.pot...@poczta.fm] Sent: Wednesday, March 25, 2009 5:40 AM To: wix-users@lists.sourceforge.net Subject: [WiX-users] Heat & xsl hi I use heat to generate wxs: "heat file x.txt -t:tr.xsl -out x.wxs" and as a result i get error: "heat.exe : error HEAT5055 : Error applying transform C:\work\sandbox\tr.xsl to harvested WiX: Token StartElement in state EndRootElement would result in an invalid XML document. Make sure that the ConformanceLevel setting is set to ConformanceLevel.Fragment or ConformanceLevel.Auto if you want to write an XML fragment." tr.xsl: <?xml version="1.0" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:wix="http://schemas.microsoft.com/wix/2006/wi"> <xsl:output method="xml" indent="no"/> <xsl:template match="/wix:Wix"> <xsl:copy-of select="./*"/> </xsl:template> </xsl:stylesheet> I am just starting learning xsl so i will appreciate any help with this br PoKrec -- View this message in context: http://n2.nabble.com/Heat---xsl-tp2532164p2532164.html Sent from the wix-users mailing list archive at Nabble.com. ------------------------------------------------------------------------------ _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users