Windowsサービス用のWiXインストーラを作成しようとしていますが、私のすべてのファイルに対してkeyPathを "no"私のWiXスクリプトの.exeの例外。 私は現在、ここにHeat.exeを使用して、私のディレクトリとファイル構造を生成していますが、私のコマンドです:WiXインストーラ:heat.exeでxsltを使用して属性を更新する
"$(WIX)bin\heat.exe" dir $(SolutionDir)EmailGenerationService\bin\PROD
-cg EmailGenFiles -gg -scom -sreg -sfrag -srd -suid
-dr INSTALLLOCATION -var var.FileSource
-t $(Projectdir)KeyPathTransform.xslt
-out $(ProjectDir)DirectoryAndFileComponents.wxs
私のDirectoryAndFileComponents.wxsファイルにキーパス=」no」を持つすべてのファイルの要素を更新するために私の意図です。 熱からの出力のサンプルである:ここ
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="INSTALLLOCATION">
<Component Id="Dollar.Common.dll" Guid="{2BCD0767-2383-47CF-B1BF-325FA4A3264F}">
<File Id="Dollar.Common.dll" KeyPath="yes" Source="$(var.FileSource)\Dollar.Common.dll" />
</Component>
<Component Id="Dollar.Common.Exceptions.dll" Guid="{B7238091-76D1-42F5-A3B4-A539DFF3BD92}">
<File Id="Dollar.Common.Exceptions.dll" KeyPath="yes" Source="$(var.FileSource)\Dollar.Common.Exceptions.dll" />
</Component>
<Component Id="Dollar.Common.Exceptions.pdb" Guid="{43711979-747D-49C9-BAE4-ECD44FAF5E67}">
<File Id="Dollar.Common.Exceptions.pdb" KeyPath="yes" Source="$(var.FileSource)\Dollar.Common.Exceptions.pdb" />
</Component>
<Component Id="Dollar.Common.Logging.dll" Guid="{59F9ABF3-5F68-410C-BC96-0556282F1E04}">
<File Id="Dollar.Common.Logging.dll" KeyPath="yes" Source="$(var.FileSource)\Dollar.Common.Logging.dll" />
</Component>
私は変換を実行するように加熱するために通過してい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"
xmlns:wix="http://schemas.microsoft.com/wix/2006/wix"
xmlns:my="my:my">
<xsl:output method="xml" indent="no"/>
<xsl:strip-space elements="*"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match='/wix:Wix/wix:Fragment/wix:DirectoryRef/wix:Component/wix:File[@Id and not (@Id="EmailGenerationService.exe")]'>
<xsl:attribute name="KeyPath">
<xsl:value-of select="no"/>
</xsl:attribute>
</xsl:template>
</xsl:stylesheet>
Iは、他に基づいて本のかなりの数の変化を試みましたこのサイトや他の場所に投稿していますが、まだ、heat.exeによって作成されたファイルをKeyPath = "no"にすることができませんでした。
明らかなものがありませんか?
回答ありがとうございますが、これも機能していません。熱はエラーなしで正常に実行されますが、生成されるファイルにはすべてのノードでKeyPath = "yes"が保持されます。 –
@MarkJones、私は私の答えを更新しました。 –
完璧、ありがとうございます –