Wixtool Burn устанавливает и удаляет 2 отдельных файла MSI

Я создал пользовательское приложение начальной загрузки Wix и файл пакета, используя Wix 3.8. Тег My Chain выглядит так:

<Chain>
      <PackageGroupRef Id="NetFx451Redist"/>
      <MsiPackage Id="MSI1" SourceFile="$(var.MSI1Path)"/>
      <MsiPackage Id="MSI2" SourceFile="$(var.MSI2Path)"/>
</Chain>

Установщик работает нормально, и я могу запускать установленные файлы *.exe. Однако, когда я проверяю «Программы и компоненты», есть только 1 «большая программа», содержащая размер MSI1, MSI2 и .Net4.5.1 (событие .Net 4.5.1, установленное ранее). Когда я удаляю эту программу, MSI1 и MSI2 удаляются.

Как я могу установить и удалить отдельно каждый элемент в цепочке, но все еще используя Burn?

Надеюсь, это имеет смысл.

Заранее спасибо.


person Minh Ho    schedule 26.11.2014    source источник


Ответы (1)


Возможно, вам действительно захочется такого поведения, как только вы его поймете.

Burn — менеджер пакетов. Пакет устанавливается одним или несколькими пакетами. Когда пакет удаляется, все ненужные пакеты также удаляются.

С настройками по умолчанию в «Программы и компоненты» отображаются пакеты, а не установленные ими файлы MSI.

Вы можете установить Visible="yes" в MsiPackage, чтобы он отображался в программах и компонентах.

Вы можете скрыть пакет из программ и компонентов, установив DisableRemove="yes" DisableModify="yes".

person Tom Blodget    schedule 26.11.2014
comment
Если вы сделаете это, вы сможете увидеть запись MSI в ARP, но когда вы удалите MSI вручную, а затем снова запустите исполняемый файл пакета, он все равно предложит вам удалить или восстановить, даже если исполняемый файл не виден в АРП. Не знаю как победить эту проблему.. - person Nilaksha Perera; 19.09.2016
comment
Это особенность. Даже если все пакеты пакетов удалены, пакет все еще установлен, поэтому вам нужно иметь возможность удалить его (или восстановить его после повреждения, вызванного тем, что кто-то удалил что-то, не зная, что от этого зависело). - person Tom Blodget; 19.09.2016