メインの.wxsファイルと空の.wxsファイルを持つVS2010 WiXプロジェクトがあります。空の.wxsは、プロジェクトのprebuildイベントで上書きされ、heat.exeを使用してコンソールEXEからすべてを収穫します。 exeにInstallUtilフックがあり、VSセットアッププロジェクトの日にexeがサービスとしてインストールされました。WiX 3.5熱からサービスをインストールする、カスタムアクションが必要ですか?
私はWiXで<ServiceInstall>
ビットを使用しようとしましたが、サービスをインストールするための実行可能ファイルやその他の要素を指定すると、メインの.wxsの.exeと熱くなると.exeの間で衝突が発生しました生成された.wxs。
サービスのインストールを行うにはカスタムアクションが最適な方法ではないと思います。そのため、XSL変換を使用してファイルを取り出そうとしています。
私のXSLは、一致する/フィルタリングされていないので、問題がなければなりません。ここでは、次のとおりです。私はこのような外観をリッピングする必要が.wxsの
<?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/wi">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" />
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="
Component[File/@Source='$(var.bindir)\servicehost.exe']"/
</xsl:stylesheet>
パーツ:
....
<Component Id="cmpD64BE1790BFAF0F05DA37558F5D72572" Guid="{6C70DDC8-349B-4B66-A415-DE08E302C2A8}">
<File Id="fil24DFDFCA765C9A8BBB8854CE66AED0E8" KeyPath="yes" Source="$(var.bindir)\servicehost.exe" />
</Component>
....
<ComponentRef Id="cmpD64BE1790BFAF0F05DA37558F5D72572" />
....
この作業を行うための最善の方法は何ですか?
ありがとうございました。
ここに同様の質問:http://stackoverflow.com/questions/7906578/removingを-unit-test-dll-files-using-wix –