wix快捷方式xsl文件

时间:2013-06-13 22:10:34

标签: xslt wix wix3.7


我正在使用heat.exe为我的调试和发布目录生成.wxs文件。  通常我使用这个.xsl文件来生成我的快捷方式。

然而在我的应用程序中,我需要有一个发布版本的快捷方式 另一个用于Debug版本。 (因为它被用作SDK的开发)

<?xml version="1.0" ?>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:wix="http://schemas.microsoft.com/wix/2006/wi">

  <xsl:output omit-xml-declaration="yes" indent="yes" encoding="utf-8"/>
  <xsl:strip-space  elements="*"/>


  <xsl:template match="@*|*">
    <xsl:copy>
      <xsl:apply-templates select="@*" />
      <xsl:apply-templates select="*" />
    </xsl:copy>
  </xsl:template>

  <xsl:output method="xml" indent="yes" />

  <xsl:template match="wix:File[@Id='APP.exe']">
    <xsl:copy-of select="."/>
    <Shortcut Id="desktopAPP"
      Advertise="yes"
      Directory="DesktopFolder"
      Name="APP"
      Icon="APP_GUI.ico"
      WorkingDirectory="BIN"
      xmlns="http://schemas.microsoft.com/wix/2006/wi" />

    <Shortcut Id="startmenuAPP"
      Advertise="yes"
      Directory="ProgramMenuFolder"
      Name="APP"
      Icon="APP_GUI.ico"
      WorkingDirectory="BIN"
      xmlns="http://schemas.microsoft.com/wix/2006/wi" />
  </xsl:template>

</xsl:stylesheet>

所以基本上这就是我得到的:

   <Component Id="APP.exe" Directory="Debug.amd64" Guid="*">
            <File Id="APP.exe" KeyPath="yes" Source="$(var.BinSourcePath)\Debug.amd64\APP.exe" />
            <Shortcut Id="desktopAPP" Advertise="yes" Directory="DesktopFolder" Name="APP" Icon="APP_GUI.ico" WorkingDirectory="BIN" xmlns:wix="http://schemas.microsoft.com/wix/2006/wi" />
            <Shortcut Id="startmenuAPP" Advertise="yes" Directory="ProgramMenuFolder" Name="APP" Icon="APP_GUI.ico" WorkingDirectory="BIN" xmlns:wix="http://schemas.microsoft.com/wix/2006/wi" />
        </Component>

我想将我的xsl文件更改为创建APP.debug快捷方式和APP.Release快捷方式 我可以看到我需要更改xsl以注意如果Component而不是File属性指向Release或Debug的目录。 并相应地更改名称。

你可以帮我解决这个xsl吗?

1 个答案:

答案 0 :(得分:2)

这样的事情应该有效:

<xsl:template match="wix:File[@Id='APP.exe' and contains(../@Directory,'Debug')]">
    <xsl:copy-of select="."/>
    <wix:Shortcut Id="startmenuAPP"
        Advertise="yes"
        Directory="ProgramMenuFolder"
        Name="APP (Debug)"
        Icon="APP_GUI.ico"
        WorkingDirectory="BIN"
    />

为所需的每个快捷方式使用类似的模板。我没有测试它,可能已经切换了你想要调试的快捷方式。