[wix-users] Transform for HarvestDirectory Visual Studio{
Phill Hogland
phill.hogland at rimage.com
Fri Oct 30 10:51:29 PDT 2015
I'm sorry here is the transform (which I have posted in the past)
<?xml version="1.0" encoding="utf-8"?>
<!-- Interesting Code from this post:
http://stackoverflow.com/questions/19515397/deploy-multiple-wcf-webservices-with-wix-toolset-wrong-svc-files
which I then modified by changing the search and replace, to look for '!wix.' and replace with'!(bindpath.'.
This change allows me to us %HarvestDirectory.PreprocessorVariable to specify the bindpath name.-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:wix="http://schemas.microsoft.com/wix/2006/wi"
exclude-result-prefixes="msxsl">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<!-- Always strip these files - not specifically related to binding. -->
<xsl:key name="thumbs.db-search" match="wix:Component[contains(wix:File/@Source, 'Thumbs.db')]" use="@Id" />
<xsl:template match="wix:Component[key('thumbs.db-search', @Id)]" />
<xsl:template match="wix:ComponentRef[key('thumbs.db-search', @Id)]" />
<xsl:key name="svn-search" match="wix:Component[contains(wix:File/@Source, '*.svn')]" use="@Id" />
<xsl:template match="wix:Component[key('svn-search', @Id)]" />
<xsl:template match="wix:ComponentRef[key('svn-search', @Id)]" />
<!-- Support using bindpath names. -->
<xsl:template name="string-replace-all">
<xsl:param name="text" />
<xsl:param name="replace" />
<xsl:param name="by" />
<xsl:choose>
<xsl:when test="contains($text, $replace)">
<xsl:value-of select="substring-before($text,$replace)" />
<xsl:value-of select="$by" />
<xsl:call-template name="string-replace-all">
<xsl:with-param name="text" select="substring-after($text,$replace)" />
<xsl:with-param name="replace" select="$replace" />
<xsl:with-param name="by" select="$by" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="@Source['!(wix.']" >
<xsl:attribute name="Source">
<xsl:variable name="projectName">
<xsl:value-of select="/wix:Wix/wix:Fragment/wix:ComponentGroup/@Id"/>
</xsl:variable>
<xsl:call-template name="string-replace-all">
<xsl:with-param name="text" select="." />
<xsl:with-param name="replace" select="'!(wix.'" />
<xsl:with-param name="by" select="'!(bindpath.'" />
</xsl:call-template>
</xsl:attribute>
</xsl:template>
</xsl:stylesheet>
-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Steven Packer
Sent: Friday, October 30, 2015 12:26 PM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Subject: [wix-users] Transform for HarvestDirectory Visual Studio{
Hi,
I have created a VS .wixproj and have added a Harvestdirectory to the Target of the project. I have been successful in harvesting the files and building the msi. However I am using PreprocessorVariable of wix.mysource which generates
!(wix.mysource)\???.
I am trying to write a transform that will substitute !(bindpath. For !(wix.
I am having a great deal of trouble figuring out how this is done. I am new to wix and .xsl. Can anyone give me an example of how I might accomplish this task?
Steven
____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/
More information about the wix-users
mailing list