Я пытаюсь установить несколько служб Windows с одним и тем же исполняемым файлом, но WiX не нравится одинаковые атрибуты имени в двух тегах файла. Я попытался изменить имена двух файловых тегов. Это работает, но я надеюсь, что мне не нужно устанавливать два одинаковых исполняемых файла только для этой цели. Есть лучший способ сделать это? Вот мой код:
<Component Id="Service1" Guid="{SOMEGUID1}">
<File Id='Service1' Name='ConnDriver.exe' DiskId='1' Source='..\Service\obj\x86\$(var.BUILD)\ConnDriver.exe' KeyPath='yes'/>
<ServiceInstall
Id="ServiceInstaller1"
Type="ownProcess"
Name="MyService1"
DisplayName="MyService1"
Description="Some Description"
Start="auto"
Account="[SERVICEACCOUNT]"
Password="[SERVICEPASSWORD]"
ErrorControl="normal"
Arguments=' "Service1"'
Vital="yes"
Interactive="no" />
<ServiceControl Id="ServiceControl1" Stop="uninstall" Remove="uninstall" Name="MyService1" Wait="yes" />
</Component>
<Component Id="Service2" Guid="{SOMEGUID2}">
<File Id='Service2' Name='ConnDriver.exe' DiskId='1' Source='..\Service\obj\x86\$(var.BUILD)\ConnDriver.exe' KeyPath='yes'/>
<ServiceInstall
Id="ServiceInstaller2"
Type="ownProcess"
Name="MyService2"
DisplayName="MyService2"
Description="Some Description"
Start="auto"
Account="[SERVICEACCOUNT]"
Password="[SERVICEPASSWORD]"
ErrorControl="normal"
Arguments=' "Service2"'
Vital="yes"
Interactive="no" />
<ServiceControl Id="ServiceControl2" Stop="uninstall" Remove="uninstall" Name="MyService2" Wait="yes" />
</Component>
В функциях:
<Feature Id="Feature1" Title="Feature 2" Level="1" Description="...">
<ComponentRef Id="Service1_xml"/>
<ComponentRef Id="Service1"/>
</Feature>
<Feature Id="Feature2" Title="Feature 2" Level="1" Description="...">
<ComponentRef Id="Service2_xml"/>
<ComponentRef Id="Service2"/>
</Feature>
Любая помощь приветствуется.
(PS. Причина, по которой я разбил их на 2 компонента, заключается в том, что я могу включить конфигурационный файл xml со службой в разделе функций. Мой установщик службы Windows принимает аргумент командной строки, чтобы узнать, какой XML-файл нужно прочитать от и настройте соответственно)
EDIT:
Ошибка вывода:
ICE30: целевой файл «hlo8twix.exe | ConnDriver.exe» устанавливается в «[ProgramFilesFolder] \ CompanyName \ ProgramName \» двумя различными компонентами в системе LFN: «Service1» и «Service2». Это нарушает подсчет ссылок компонентов.