我正在尝试使用标志/ 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'/>
答案 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>
一些相似或相关的答案 :