У меня есть проект VS2010 WiX с основным файлом .wxs и пустым файлом .wxs. Пустой .wxs перезаписывается в событии предварительной сборки проекта, используя heat.exe для сбора всего из консольного exe. У exe есть перехватчики InstallUtil, а во времена проекта установки VS exe был установлен как служба.
Я пытался использовать биты
в WiX, но когда я указал исполняемый файл и другие элементы для установки Службы, Лайт жаловался на конфликт между .exe в основном .wxs и .exe в тепловых .wxs.
Я думаю, что Custom Action - не лучший способ сделать сервис установка, поэтому я пытаюсь преобразовать XSL, чтобы получить файл, который мне не нужен (это единственный файл из 100).
У моего XSL должна быть проблема, потому что он не соответствует / не фильтруется. Вот он:
<?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>
Части файлов .wxs, которые мне нужно вырезать, выглядят следующим образом:
....
<Component Id="cmpD64BE1790BFAF0F05DA37558F5D72572" Guid="{6C70DDC8-349B-4B66-A415-DE08E302C2A8}">
<File Id="fil24DFDFCA765C9A8BBB8854CE66AED0E8" KeyPath="yes" Source="$(var.bindir)\servicehost.exe" />
</Component>
....
<ComponentRef Id="cmpD64BE1790BFAF0F05DA37558F5D72572" />
....
Как лучше всего выполнить эту работу?
Спасибо.