WiX ExitCode forceReboot вызывает бесконечную перезагрузку
У меня есть простой загрузчик Burn, в котором первое, что мне нужно сделать, это запустить перезагрузку (до того, как что-либо установлено), а затем продолжить установку после перезагрузки. Я настроил цепочку как таковую:
<Chain>
<ExePackage SourceFile="DummyExe.exe">
<ExitCode Behavior="forceReboot" />
</ExePackage>
<PackageGroupRef Id="NetFx40Web" />
<PackageGroupRef Id="others..." />
</Chain>
Это прекрасно работает, когда я сначала запускаю установщик: он вызывает перезагрузку и продолжает установщик при входе в систему, но затем цепочка запускается заново с самого начала, вызывая тем самым еще одну перезагрузку. Он просто постоянно перезагружается и никогда не продолжает установку.
Я нашел другие ответы, которые объясняют, как сделать это с помощью специального приложения начальной загрузки, но в настоящее время я использую bal:WixStandardBootstrapperApplication
,
Возможно ли это без написания CBA? (Я использую WiX 3.7)
2 ответа
Вы получаете именно то, что вы просите.
Вы хотите предоставить атрибут Value в элементе ExitCode, чтобы обусловить поведение. Без него поведение вызывается для любого кода выхода. Консультируйтесь с документацией пакета для ожидаемых кодов выхода и их значений. Вы можете указать несколько элементов ExitCode, если хотите, с последним элементом без значения Value для определения поведения по умолчанию.
Это может сработать:
<Chain>
<ExePackage Id="DummyReboot" SourceFile="DummyExe.exe" InstallCondition="NOT WixBundleForcedRestartPackage = DummyReboot" >
<ExitCode Behavior="forceReboot" />
</ExePackage>
<PackageGroupRef Id="NetFx40Web" />
<PackageGroupRef Id="others..." />
</Chain>