wix-静默卸载应用程序时的自定义操作对话框

时间:2018-12-20 21:52:35

标签: wix windows-installer

我正在尝试使用标志/ quiet和/ uninstall静默卸载Windows应用程序,但是安装程序当前未隐藏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 :(得分:0)

禁止对话框 :如果显示的对话框没有适当的条件,则没有,您不能完全禁止它,但是有许多解决方法。

“修复” :您可以 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 tool 有时可让您摆脱卡住的安装(不确定它是否适用于来自自定义操作的对话框)< / p>

条件 :尽管可以控制它的 InstallExecuteSequence 顺序,但绝不应该显示来自自定义动作的对话框使用UILevel property显示。您可以使用上述方法1-3将这样的条件添加到MSI。 (可以尝试 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>

一些相似或相关的答案