Wix Burn: пользовательское обновление загрузчика, удалите старый пакет, но процесс все еще останется

У меня есть собственный загрузчик, я пытаюсь обновить свой пакет, просто изменив версию (все версии MSI остаются прежними, что не является идеальным сценарием). Оба пакета имеют одинаковый код обновления (который у них должен быть).

После завершения обновления старый пакет незаметно удаляется, так как он будет вызываться с аргументом / quit после установки нового, но после завершения удаления старого пакета процесс все еще остается и не убивает сам. Из-за этого мое текущее состояние Custom Bootstrapper не меняется.

Вопрос: Кто-нибудь, пожалуйста, дайте мне знать, что можно сделать здесь, чтобы убить старый процесс создания пакета, чтобы текущий пакет продвигался вперед с его обновлением, не застревая?


person Mohit    schedule 14.08.2015    source источник


Ответы (1)


Думаю, я понял проблему, поскольку механизм записи создает дополнительный процесс, когда происходит обновление, чтобы удалить старую запись пакета, поэтому, чтобы вернуться к основному потоку после удаления, я сделал приведенное ниже изменение в событии ApplyComplete в моем CustomBA.

if (CustomBootstrapperApplication.Model.PlannedAction == LaunchAction.Uninstall && isRelatedBundlePresent) // this will be called in case of Upgrade of the bundle
{
    CustomBootstrapperApplication.Dispatcher.InvokeShutdown();                 
}

isRelatedBundlePresent - это флаг, который я устанавливаю в DetectRelatedBundle, когда RelationType.Upgrade

person Mohit    schedule 17.08.2015