4
我正在收集一個帶有熱量的文件,我真的很想給它一個體面的ID,而不是通常的「filXXXXXXXX」,主要是因爲我需要在其他部分參考它安裝程序。我知道Id始終是相同的,在不同的機器上以及不同的文件內容顯然是如此,所以我可以堅信它在CI服務器上建立時不會改變。在Wix中指定一個帶有熱度的文件ID
當然,讓這個值更友好一些會更好。看起來Heat沒有命令行選項來生成文件ID(EDIT:顯然有一個-suid選項會停止生成數字ID,並且只使用文件名作爲ID,無論如何這在許多場景中都不可行) ,所以我正在經歷編寫XSLT的痛苦,但無法實現我想要的,任何人都可以幫忙?
這是片段文件:
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="DBScripts" />
</Fragment>
<Fragment>
<ComponentGroup Id="CSInstallerConfig">
<Component Id="cmpD6BAFC85C2660BE8744033953284AB03" Directory="DBScripts" Guid="{A39BABF5-2BAC-46EE-AE01-3B47D6C1C321}">
<File Id="filB31AC19B3A3E65393FF9059147CDAF60" KeyPath="yes" Source="$(var.CONFIG_PATH)\CSInstaller.config" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>
這是XSLT:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="@*|*">
<xsl:copy>
<xsl:apply-templates select="@*|*" />
</xsl:copy>
</xsl:template>
<xsl:template match="File">
<xsl:attribute name="Id">
<xsl:value-of select="123"/>
</xsl:attribute>
</xsl:template>
</xsl:stylesheet>
現在,我和XSL一個真正的菜鳥,所以也許上面的文件是總廢話,但無論如何,發生的事情是「文件」元素被直接複製,而不會改變Id。
任何想法?
非常感謝!這正是它是:) – Tallmaris 2012-07-20 13:22:58