我们有一个设置,我们有一个服务,我们尝试安装和运行。
由于某种原因,服务无法启动(由于端口已在使用中)。这对我们来说并不重要,不应该停止设置。
服务声明如下:
func NewHub() *Hub {
return &Hub{
...
clients: make(map[*Client]bool),
users: make(map[int]*Client),
}
}
然后,我们只能选择重试(也会失败)或取消(停止设置)。
我们尝试了很多东西(只放了serviceInstall,而不是serviceControl,......)但是在某些时候我们总是有错误。
我们应该如何管理?
答案 0 :(得分:1)
尝试答案(无法测试):
如果将ServiceControl
元素的Wait attribute
设置为“否”会怎样?我目前没有服务exe测试,但我相信这可以按照您的意愿运行。
出于可靠性的原因,通常应该避免自定义操作,但另一方面 - 如果您确实需要一些特殊的东西 - 这就是它们的用途。为大多数部署问题做好准备,但这些问题源于您的自定义操作: Why is it a good idea to limit the use of custom actions in my WiX / MSI setups?
一些进一步的建议(没有被要求:-)):
"Program Files\MyCompany\MySoftware\5"
而不是"Program Files\MyCompany\MySoftware"
。只需内联快速示例(与上面的链接相同 - 检查出来),这就是安装具有默认属性/参数的普通文件所需的全部 - 所有其他属性默认都很好 - 除非你想覆盖一些东西:
<Component>
<File Source="..\File.dll" />
</Component>
一些链接:
答案 1 :(得分:0)
删除ServiceControl
元素代替CustomAction
元素并设置@DllEntry="WixQuietExec"
,然后使用标准方法启动服务net start foo
并忽略结果。有关详细信息,请参阅Quiet Execution Custom Action。