我的MSI安装程序将捆绑一大堆其他文件以进行安装。这很好,但是,在卸载/升级时我们要保留这些文件。
因为它们是捆绑在一起而不是组件,所以我不能使用通常的说法来使组件永久化。
我找到了以下代码,用于识别安装目录中的文件并使其永久化
<xsl:if test="contains(*[local-name()='File']/@Source, 'PCSTDESC')">
<xsl:attribute name="NeverOverwrite"><xsl:text>yes</xsl:text></xsl:attribute>
<xsl:attribute name="Permanent"><xsl:text>yes</xsl:text></xsl:attribute>
</xsl:if>
然而,这是针对特定文件的,因为在我的示例中,我不想成为特定文件或扩展程序,我只想保留整个&#39;文档&#39;目录
我已经尝试了以下但是还没有运气好吗
<xsl:if test="contains(*[local-name()='Directory']/@Name, 'Documents')">
<xsl:attribute name="NeverOverwrite"><xsl:text>yes</xsl:text></xsl:attribute>
<xsl:attribute name="Permanent"><xsl:text>yes</xsl:text></xsl:attribute>
</xsl:if>
有关如何使其按预期工作的任何建议?
答案 0 :(得分:1)
我不确定如何将目录标记为永久性,但您可以尝试标记目录中的所有文件。
试试这个......
<xsl:if test="contains(parent::*[local-name()='Directory']/@Name, 'Documents')">