Wix Managed Bootstrapper: установка Net framework и добавление записи в программу добавления и удаления, даже если мы отменяем установку продукта

В моем управляемом загрузчике я упаковываю Net framework 4.5.1 и VC Redistributable следующим образом:

<PackageGroupRef Id         = "NetFx451Redist"  />       
  <PackageGroupRef Id         = "VC_ReDist_120" After="NetFx451Redist"   />

  <RollbackBoundary />

  <MsiPackage      Id         = "MainProduct"
                   DisplayName             = "$(var.ProductName)"                       
                   DisplayInternalUI       = "no"
                   Visible                 = "no"
                   Compressed              = "yes"
                   SourceFile              = "$(var.MainProduct)"
                   Vital                   = "yes"
                   After                   = "NetFx451Redist"                            
   >

В Windows 7 x64, где Net FW 4.5.1 отсутствует, при установке это отобразит основной экран wixstdba для установки .Net framework, а также добавит запись в программах Add-Remove перед завершением Net Framework и запуском моего пакета msi. установка. введите здесь описание изображения

Проблема: теперь, после завершения установки Net Framework 4.5.1 и запуска моего пакета продукта (управляемого загрузчика), если я отменю его установку или она может быть прервана из-за какой-либо ошибки/проблемы, она оставит запись в программах Add-Remove. Если я пытаюсь удалить / изменить его из программ «Установка и удаление», он снова запускает интерфейс установки управляемого загрузчика с включенной кнопкой «Установить», как будто это новая установка, но всегда заканчивается ошибками.

Я хочу удалить его запись из программы Add-Remove, если я отменю установку или она будет прекращена из-за какой-либо ошибки/проблемы из управляемого интерфейса.

Я что-то упустил из своего пакета или управляемого кода...???


person Farrukh Waheed    schedule 14.09.2015    source источник


Ответы (1)


Механизм записи зарегистрирует пакет в разделе «Установка и удаление программ», как только будет установлена ​​какая-либо часть пакета. Необходимый пакет .NET является частью пакета, поэтому, когда приложение MBAPrereq BootstrapperApplication устанавливает .NET, пакет регистрируется в разделе «Установка и удаление программ». Невозможно изменить это поведение движка Burn в вашем Bundle или BA. Потенциальный запрос функции может заключаться в том, чтобы Burn зарегистрировал пакет только после того, как был установлен непостоянный пакет. Запросы функций следует отправлять по адресу http://wixtoolset.org/issues.

Сегодня вы можете попытаться обойти эту проблему, поместив логику в свой BA, где он автоматически удаляет себя перед вызовом Engine::Exit, если обнаружит этот сценарий.

person Sean Hall    schedule 15.09.2015
comment
Спасибо, Шон. Я добавил проблему туда: wixtoolset.org/issues/4905. Надеюсь, кто-нибудь предоставит какое-то решение. - person Farrukh Waheed; 23.09.2015
comment
Лично для меня это шоу-стоппер. Не знаю, как продолжить. В моем случае у меня есть .NET в качестве предварительного условия для установки, и после его установки он показывает продукт как установленный. Затем мой установщик терпит неудачу, потому что думает, что он уже установлен. Когда вы запускаете его снова, он вызывает диалоговое окно изменения/удаления, хотя установка еще даже не была выполнена. - person Tyrel Van Niekerk; 07.11.2018
comment
Добавление ссылки на новый URL-адрес системы отслеживания ошибок: github.com/wixtoolset/issues/issues/4822 - person Stein Åsmul; 21.06.2019