Как включить удаление для пакета Wix и все же скрыть его от программ и функций?
Я не хочу отображать свой пакет в программах и функциях. Но при удалении его следует удалить вместе с MSI. Чтобы скрыть пакет, я могу установить для свойства disableModify значение yes. Это скроет связку. Но это отключит функцию удаления пакета. Это не то, что я хочу. Потому что, как я могу скрыть пакет от программ и компонентов и все еще удалить его во время удаления? Пожалуйста посоветуй.
2 ответа
С точки зрения пакета нет "приложения", только 0 или более пакетов.
С точки зрения установщика пакета (например, .msi) пакет не существует. Он мог быть установлен / указан 0 или более комплектами и / или установлен вручную или какой-либо другой системой.
Деинсталляция пакета "ломает" пакет. Он может быть восстановлен или удален с той же самой версией пакета, но не может быть восстановлен путем установки более низкого версии пакета.
Самый простой подход состоит в том, чтобы скрыть пакеты для вашего приложения от Программ и компонентов и позволить пользователям рассматривать пакет как "приложение". (Любые пакеты, которые ваш пакет рассматривает как постоянные, обычно не должны быть скрыты.)
Visible="yes" покажет вам установленные пакеты отдельно.
<MsiPackage Id="Dependency1" SourceFile="your.msi" Cache="no" Visible="yes" DisplayInternalUI="yes" EnableFeatureSelection="yes" />
Смотрите этот ответ об обработке MSI и MSP в пакетах
Это звучит как поведение, которое вы после.
Обратите внимание, что этот ответ для WiX 3.9 или более поздней