如何在WiX捆绑中处​​理几个“ExitCode”设置为“forceReboot”?

时间:2013-05-30 07:13:29

标签: wix

bundle项目有两个EXE安装程序,两者都必须重新启动计算机。代码如下:

<Chain>
    <ExePackage
        Id="RDRole"
        Cache="no"
        Compressed="yes"
        PerMachine="yes"
        Vital="no"
        SourceFile="Resource\ServerManagerCmd.exe"
        Permanent="yes"
        InstallCommand="-install RDS-RD-Server">

        <ExitCode
            Behavior="forceReboot"/>
    </ExePackage>

    <ExePackage
        Id="DoNetFull"
        Name =".NET Framework 4.0 full runtime"
        Cache="yes"
        Compressed="yes"
        PerMachine="yes"
        Vital="yes"
        SourceFile="Resource\dotNetFx40_Full_x86_x64.exe"
        InstallCommand="/q /norestart"
        Permanent="yes">

        <ExitCode
            Behavior="forceReboot"/>
    </ExePackage>

如果同时安装了RDRoleDoNetFull,如何让计算机重启一次?

1 个答案:

答案 0 :(得分:0)

今天Burn引擎目前不支持。有一个功能请求可以创建像RollbackBoundary这样的内容,表示如果此时需要重新启动,请接受它。我们可以称之为RestartBoundary。但是,这在今天不存在。

但是,与Burn中的大多数内容一样,您可以通过开发一个自定义Bootstrapper应用程序来创建相同的概念,该应用程序在注意到以前的包需要重新启动时从OnExecutePackageComplete返回强制重启。拥有自定义BA后,实施起来并不是非常困难。