我正在使用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吗?
答案 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"
/>
为所需的每个快捷方式使用类似的模板。我没有测试它,可能已经切换了你想要调试的快捷方式。