Диалоговое окно подавления : если это диалоговое окно отображается без надлежащего условия, то нет, вы не можете сразу его подавить, но есть много обходных путей.
«Исправления» : Вы можете 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"
,Не проверял это, оставляя в том, что там есть.
Некоторые похожие или похожие ответы :