前提:
windows service需要做一個恢復設置,具體如下:
Installshield service recovery配置:
發現在win7中可以通過installshield自帶servcie配置 進行操作,在xp中就不可以,網上搜了一圈 也發現有類似問題,沒找到原因
解決思路:
如果用installshield自帶配置在xp上不行,想着就寫一個CA可以去配置,簡略方案如下:
新建一個Custom Action,執行下面命令,注意需要deferred執行
win7 sc命令寫法:
sc.exe failure SERVICENAME actions=restart/60000 reset=0
xp sc命令寫法:
sc.exe failure SERVICENAME actions= restart/60000 reset=0
注意區別,actions= 後面xp有一個空格
原因思考:
分析了win7跟xp的安裝log,發現一個有意思的地方,在xp中MsiConfigureService的condition是false,這個自帶action不會執行
而win7中MsiConfigureServices可以執行。
需要注意的是MsiConfigureServices的執行條件是VersionMsi>="5.0"
xp中VersionMsi是:
win7中VersionMsi是:
所以猜測這是xp中不能配置service recovery的原因