[wix-users] Burn with mba, force reboot in middle of chain and handle restart.

Jeremy Drake jeremydrake+wix at eacceleration.com
Fri Sep 11 09:30:23 PDT 2015


> Reboot by setting e.Result to Result.Reboot.

Oops, that was supposed to be Result.Restart.


On Fri, 11 Sep 2015, Jeremy Drake wrote:

>>  What I am missing is what should I do in the mba to detect that the CA
>>  indicated that a reboot is necessary and force the reboot. (Unfortunately
>>  I have a later third-party package for which the setup will error out if
>>  the error in the above CA is allowed to continue without doing the reboot
>>  immediately.)
>
> on ExecutePackageComplete, e.Restart is ApplyRestart.RestartRequired.  If the 
> package in question (e.PackageId) is the package that you need to do this 
> for, and e.Restart is ApplyRestart.RestartRequired, set e.Result = 
> Result.Restart.  Then, on ApplyComplete, use e.Restart, 
> BootstrapperApplication.Command.Restart, and 
> BootstrapperApplication.Command.Display to decide to prompt for reboot, 
> automatically reboot, or not reboot.  Reboot by setting e.Result to 
> Result.Reboot.
>
>
> On Fri, 11 Sep 2015, Phill Hogland wrote:
>
>>  My mba driven package chain has a package which includes a CA in which I
>>  call a system tool to do CBS servicing.  That tool may return 0x80070bc2
>>
>>  if (0x80070BC2 == hr) {  //success, reboot is needed, so changes may not
>>  be effective until after the reboot
>>  WcaLog(LOGMSG_STANDARD, "Return code, %d, indicates a reboot is needed.
>>  The installed features may not be available until after the next reboot,
>>  but this setup will proceed.\n", hr);
>>        WcaDeferredActionRequiresReboot();
>>        hr = S_OK;
>>  }
>>
>>  I then found Sean's helpful advice on implementing the mba code to handle
>>  the restart and I implemented the Startup and PlanPackageBegin changes.
>>  What I am missing is what should I do in the mba to detect that the CA
>>  indicated that a reboot is necessary and force the reboot. (Unfortunately
>>  I have a later third-party package for which the setup will error out if
>>  the error in the above CA is allowed to continue without doing the reboot
>>  immediately.)
>>
>>  I saw the source for WIXAPI WcaDidDeferredActionRequireReboot() but am not
>>  sure where I would call this (or equivalent) from my C# mba.
>>
>>  And then I also need to handle the situation where a reboot is not allowed
>>  as this bundle might be part of a silent script, but that is a separate
>>  issue.
>> 
>>
>>  Thanks for any advice.
>> 
>>
>>  ____________________________________________________________________
>>  WiX Toolset Users Mailing List provided by FireGiant
>>  http://www.firegiant.com/
>> 
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant 
> http://www.firegiant.com/
>
>



More information about the wix-users mailing list