Я пытаюсь заставить работать следующее:
При первой установке программы она изменяет переменные среды системы, и, следовательно, необходимо перезапустить ее, чтобы программа полностью заработала. Делать это в WiX довольно просто, просто запланируйте перезагрузку:
<InstallExecuteSequence>
<ScheduleReboot After="InstallFinalize" />
</InstallExecuteSequence>
Проблема, с которой я столкнулся, заключается в том, что я хочу выполнить небольшие обновления этой программы (те, в которых номер версии изменяется, а GUID продукта - нет), и для этого не требуется перезагрузка.
В моих попытках заставить условную перезагрузку работать, я пытался сделать следующее:
<Product
...
Version="1.0.1"
UpgradeCode="MYUPDATEGUID-C39B-4DDE-BA5B-6113463F60C2"
...
>
<Upgrade Id="MYUPDATEGUID-C39B-4DDE-BA5B-6113463F60C2">
<UpgradeVersion OnlyDetect="yes" Property="UPGRADING"
Maximum="1.0.1" IncludeMaximum="yes" />
</Upgrade>
...
<InstallExecuteSequence>
<ScheduleReboot After="InstallFinalize">NOT UPGRADING</ScheduleReboot>
</InstallExecuteSequence>
Это замечательно, только не работает. Независимо от того, что я делаю, он всегда пытается запланировать перезагрузку.
Похоже, проблема в свойстве UPGRADING
- если я заменим NOT UPGRADING
на UPGRADING
, он никогда не запросит перезагрузку.
Любое понимание от кого-либо более опытного, чем я, было бы потрясающим.