我在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不允许对启动属性使用PArameter,因此Im坚持使用条件(例如,/
<Component Id="ServiceDemand"
Guid="{E204A71D-B0EB-4af0-96DB-9823605050C7}" >
<Condition>SERVICESTART="demand"</Condition>
...
并使用“开始”的不同设置和“条件”来完全复制整个组件。
有人知道更优雅的解决方案吗?我不需要维护的两个组件,除了“开始”属性外,其他组件的功能完全相同。
最佳答案
ServiceInstall表中的“开始”字段未设置格式,因此使用属性输入的内容将不起作用。该链接提供了一些有用的建议,可能会帮助您:ServiceInstall - Start element。看起来发布者有同样的问题。他们提供的最喜欢的建议是创建一个在InstallServices操作之前运行的自定义操作,该操作将更改Service Install表中Start元素的值。
更新:修改了指向建议站点的链接。