Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
wix-静默卸载应用程序时的自定义操作对话框_Wix_Windows Installer - Fatal编程技术网

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

wix-静默卸载应用程序时的自定义操作对话框,wix,windows-installer,Wix,Windows Installer,我正在尝试以:/quiet和/uninstall的标志静默卸载windows应用程序,但安装程序当前未抑制CustomAction对话框。当对话框出现时,用户需要确认(按“是”按钮)删除所有程序生成的数据 有没有办法告诉卸载程序在安静模式下单击“是” 下面是当前的wix代码 <!-- Remove app data custom action --> <CustomAction Id="SetPathToRemove" Property="ShowRemoveFilesDial

我正在尝试以:/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'/>

交叉链接:和。老年人:


抑制对话框:如果该对话框在没有适当条件的情况下显示,则不可以立即抑制它,但有许多解决方法

“修复程序”:对于失败或卡住的卸载,有一些不同程度的“疯狂”修复程序(通常用于自定义操作导致卸载回滚并无法完成的失败修复程序-一种无法向前或向后执行的第22条军规):

  • 1)
    MS FixIt:有一个有时可以让您摆脱卡住的安装(不确定它是否 应用于自定义操作中的对话框)。如果有,先试试这个 一个或几个例子
  • 2)
    小升级/补丁:(首选方法)-。这也可以用于“大规模”修复损坏的MSI卸载序列,然后可以在所有机器上调用该序列如果您愿意,真正的解决方案(一旦出现问题)

  • 3)
    转换:然后在卸载过程中应用该转换(不推荐-过于复杂,容易出错)

  • 4)
    Dr.No不:如果可以使用的实例很少(基本上与通过修补程序发生的情况相同,只能手动完成)

    • 如果你有几台机器(比如说1-5台要清理的机器)就行了
    • 支持工作-并非没有风险!不推荐
    • 并且不要删除自定义操作!只需在有问题的自定义操作序列中添加一个条件“和0”-这将阻止自定义操作运行
  • 5)
    精神错乱症:有些人使用“陌生人海岸”的工具,如AutoIt,它模拟击键来消除卡住的对话框。虽然规模不够大,但可能适用于较小的场景。不推荐。试试这些针对安全软件的工具吧!哦,不!(任何事情都有可能发生,它会崩溃——只是时间问题)

条件:尽管您可以使用。您可以使用上述方法1-3将此类条件添加到MSI。(
非UILevel=2
可以尝试。级别2完全静音运行)


添加条件

有关如何向InstallExecuteSeSequence添加条件自定义操作的快速模型:


未安装并标记
我想我应该使条件
未安装并且FLAG=“1”
。没有测试,留在那里


一些类似或相关的答案


您需要清理多少实例?installsequence的当前条件是:删除或升级ProductCode我已经读到,我应该将条件更改为REMOVE=“ALL”。这是您正在进行的设置还是您试图摆脱的设置?要清理多少实例?这是我试图通过Jenkins(一个自动构建服务器)自动化的项目的设置。过程如下:签出代码->设置环境->构建项目/运行单元测试->安装应用程序->运行功能测试->卸载应用程序。目前,我无法通过Jenkins自动卸载应用程序,因为它卡在自定义对话框上。wix安装程序当前未使用UILevels。我认为使用UILevels是正确的解决方案,但它是否像在CustomAction属性中设置UILevel值那样简单?谢谢您的帮助!原则上,设置
UILevel条件
是可行的,但我根本不喜欢
InstallExecuteSequence
中的这种GUI方法。此自定义操作是否需要提升权限?功能真的是必需的吗?(清除/删除自定义操作的潜在bug是可怕的)。