在使用WIX卸载时如何避免"应关闭以下应用程序"消息?

c00*_*0fd 6 windows windows-installer wix

我尝试使用WIX编写MSI安装程序.在卸载过程中,我需要运行一个专门的自定义操作,首先停止我的服务,然后关闭应用程序.我在InstallInitialize事件发生后使用以下标记来做到这一点:

<CustomAction Id='myCustomAction' BinaryKey='myDll' DllEntry='msiUninstallInitialize' Execute='deferred' Impersonate='no' />

<InstallExecuteSequence>
    <Custom Action='myCustomAction' After='InstallInitialize'></Custom>
</InstallExecuteSequence>
Run Code Online (Sandbox Code Playgroud)

问题是,如果我的应用程序的先前版本在我尝试使用我的MSI升级到较新版本之前运行,我会收到一个重新启动管理器弹出此消息:

在此输入图像描述

然后这一个:

在此输入图像描述

为了阻止它,我添加了以下属性:

<Property Id="MSIRESTARTMANAGERCONTROL" Value="Disable" />
Run Code Online (Sandbox Code Playgroud)

但现在卸载程序显示此窗口:

在此输入图像描述

所以我很好奇,如果我的应用程序正在运行,有没有办法禁用检查(我会在自定义操作处理期间自己关闭它)?

Rob*_*ing 5

您已禁用与Windows Installer的重新启动管理器交互,因此现在Windows Installer将回退到其旧行为FileInUse对话框.MSIRESTARTMANAGERCONTROL属性记录了此行为 .

我从来没有尝试,但理论上说你可以隐藏(Dialog/@Hidden='yes')FilesInUse对话框以使对话框不显示.