我在 WiX 安装程序中有一个 ServiceInstall 组件,我需要根据传递给 MSI 的参数启动自动或需求。
所以有问题的 Xml 元素是
<ServiceInstall Vital="yes"
Name="My Windows Service"
Type="ownProcess"
Account="[SERVICEUSERDOMAIN]\[SERVICEUSERNAME]"
DisplayName="My Service"
Password="[SERVICEUSERPASSWORD]"
Start="demand"
Interactive="no"
Description="Something interesting here"
Id="Service"
ErrorControl="ignore"></ServiceInstall>
WiX 不允许对 Start 属性使用 PArameter,因此我坚持使用条件完全复制组件,例如/
<Component Id="ServiceDemand"
Guid="{E204A71D-B0EB-4af0-96DB-9823605050C7}" >
<Condition>SERVICESTART="demand"</Condition>
...
并完全复制整个组件,使用不同的 Start 设置和不同的 Condition。
有人知道更优雅的解决方案吗?一个我不需要维护的组件,除了 Start 的 Attribute 之外,它们做完全相同的事情?