2010-08-04 53 views
0

我正在致力于安装并启动服务的MSI安装程序。它可能会或可能不会替换正在使用的文件。当它发生时,在安装结束时会提示重启机器。MSI:开始服务,除非用户选择重新启动机器

服务在第一次启动时运行了很长的初始化,不希望因关机而中断。我所要做的就是阻止服务启动,直到它知道安装已完成,并且不会重新启动,例如:不需要重新启动,或选择用户选择推迟重新启动。

引导程序是不是一种选择,都必须内部的MSI

有人可以告诉我,什么是应该做最好的办法来实现?

+0

它真的很重要吗? Windows不会关闭,您的服务启动将被取消?如果没有引导程序,我怀疑它可能很容易做到你想要的。也许使用计划任务来延迟启动服务可能是一个选项。 – 2010-08-04 22:03:35

回答

0

我打算给一个务实的,虽然不完美的答案.... Windows安装程序并没有真正有任何方式来支持这个,所以只是故意请求重新启动,并没有一个ServiceControl元素。只需将ServiceInstall设置为Auto,然后让其他设备重启。

我知道,我通常会尽量避免重新启动,但如果您经常需要一个反正它,它只是让你的整个故事更简单。

我唯一能想到的其他事情就是在你的服务中暴露一个RPC mechansim(例如wcf end point),并让你的长时间运行过程只发生在服务的第二次启动或者当rpc被第一次调用。如果不需要重新启动,那么在安装程序结束时进行自定义操作,调用rpc。

我只是想不出有什么办法可以在MSI本地进行。