wix - диалоговое окно с настраиваемым действием при автоматическом удалении приложения - PullRequest
0 голосов
/ 21 декабря 2018

Я пытаюсь беззвучно удалить приложение Windows с флагами: / quiet и / uninstall, но установщик в настоящее время не закрывает диалоговое окно CustomAction.Когда появится диалоговое окно, пользователь должен подтвердить (нажав кнопку «да»), чтобы удалить все сгенерированные программой данные.

Есть ли способ сказать программе удаления нажимать «да» в тихом режиме?

Ниже приведен текущий код wix.

<!-- Remove app data custom action -->
<CustomAction Id="SetPathToRemove" Property="ShowRemoveFilesDialog" Value="[ApplicationAppDataDir]" />
<CustomAction Id="ShowRemoveFilesDialog" BinaryKey='CustomActionsBinary' DllEntry='ShowDialogRemoveFiles'
              Execute='deferred' Return='ignore' Impersonate='no'/>

1 Ответ

0 голосов
/ 21 декабря 2018

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

«Исправления» : Вы можете 1) patch the existing installation with a minor upgrade (предпочтительный подход), вы можете 2) hack apply a transform, который затем применяется во время удаления (не рекомендуется).3) Если есть несколько экземпляров, которые вы можете hack the locally cached MSI database (в основном то же самое, что происходит с помощью патча, выполняется только вручную. Работает, если вы получили 1-4 машины для уборки).Работа поддержки - не без риска!Не рекомендуется.And don't delete custom actions! Just add a condition AND 0 - that will stop the custom action from running.4) Существует инструмент Microsoft FixIt , который иногда позволяет избавиться от зависших установок (не уверен, применяется ли он к диалогам из пользовательских действий)

Условия : Вы никогда не должны отображать диалоговое окно из настраиваемого действия, выполняемого в InstallExecuteSequence, хотя вы можете управлять его отображением, используя Свойство UILevel .Вы можете добавить такое условие в MSI, используя подходы 1-3 выше.(NOT UILevel = 2 можно попробовать. Уровень 2 полностью работает бесшумно)


Условие добавления :

Быстрый макет того, как добавить условное настраиваемое действие к InstallExecuteSequence:

<Property Id="FLAG" Value="1"/>

<..>

<CustomAction Id='Something' Property='INSTALLFOLDER'
              Value='[CMDLINE_INSTALLFOLDER]' Execute='firstSequence' />

<..>

<InstallExecuteSequence>
   <Custom Action='Something' Before='AppSearch'>NOT Installed AND FLAG</Custom>
</InstallExecuteSequence>

Полагаю, я должен поставить условие NOT Installed AND FLAG="1",Не проверял это, оставляя в том, что там есть.


Некоторые похожие или похожие ответы :

...