У меня есть собственный установщик приложения начальной загрузки, который хорошо работал с такими обычными функциями, как установка, удаление и так далее. Но теперь мне нужно добавить функцию обновления для установщика именно для комплекта, но он всегда показывает интерфейс установки или деинсталляции во время процесса установки нового установщика комплекта. Я знаю, что старая версия должна быть удалена во время этого процесса, но я ожидаю, что предыдущая версия будет удалена до того, как будет установлена более новая версия, и процесс удаления должен быть в режиме молчания.
Я новичок в Wix, но я прочитал много статей в StackOverflow и попробовал большинство связанных решений. Такие как следующие ссылки:
Как обнаружить установленные в настоящее время функции во время MajorUpgrade с помощью пакетов WiX Burn MBA?
Как выполнить обновление Wix с помощью пользовательского загрузчика
Wix не удаляет предыдущую версию Burn Exe во время серьезного обновления
Обновление записи WiX показывает UI удаления в конце
К сожалению, никто из них не работает для меня. Я плохо знаю стеки вызовов движка записи, поэтому я отправляю свой код на здесь !
В своем коде я попробовал следующие решения:
private void DetectComplete(object sender, DetectCompleteEventArgs e)
{
if (LaunchAction.Uninstall == WixBA.Model.Command.Action)
{
WixBA.Model.Engine.Log(LogLevel.Verbose, "Invoking automatic plan for uninstall");
WixBA.Plan(LaunchAction.Uninstall);
}
}
private void BootstrapperApplication_ApplyComplete(object sender, ApplyCompleteEventArgs e)
{
if (this.model.BootstrapperApplication.Command.Action == LaunchAction.Uninstall && isRelatedBundlePresent) // this will be called in case of Upgrade of the bundle
{
CustomBootstrapperApplication.Dispatcher.InvokeShutdown();
}
}
Если бы кто-нибудь мог помочь мне просмотреть мой код, это было бы полезно. Когда вы загрузите мой код, измените параметр MsiVersion на номер версии и измените параметр ProjectRootDir на ваш локальный путь к файлу решения в файле "ccnetcall-build-language-package.bat" в папке "Build" и затем создайте разные версии установщиков, запустив файл bat.
Заранее спасибо!