我正在开发一个Wix项目,需要询问用户是否要在卸载时删除数据库。我在UI中为Wix项目添加了对话框和控件。当我单击MSI时,会显示卸载的自定义对话框,但是当我通过“程序和功能”中的“卸载”单击它时,它不会显示。
要从“程序和功能卸载”中显示相同的自定义卸载对话框,我需要做什么?
答案 0 :(得分:2)
或者,您可以通过自定义操作使用一个很好的功能,告诉会话显示各种对话框类型:
Record record = new Record();
record.FormatString = string.Format("Would you like to remove program-generated data?");
MessageResult value = session.Message(InstallMessage.User | (InstallMessage)MessageBoxButtons.YesNo, record);
if (value == MessageResult.Yes)
{
// Remove program-generated data
}
请在此处查看我提出此解决方案的位置:http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/UI-on-uninstall-td7593560.html#a7593572
请参阅此处了解您可以提供的各种对话框:https://msdn.microsoft.com/en-us/library/windows/desktop/aa371672(v=vs.85).aspx
要仅在卸载时使用此自定义操作,请按以下方式安排:
<CustomAction Id="ShowDialog" BinaryKey='CustomActionsBinary' DllEntry='ShowDialogRemoveFiles'
Execute='immediate' Return='check' Impersonate='no'/>
<Binary Id='CustomActionsBinary' SourceFile='CustomActions.CA.dll'/>
<InstallExecuteSequence>
<Custom Action='ShowDialog' Before='InstallFinalize'>REMOVE</Custom>
</InstallExecuteSequence>
答案 1 :(得分:1)
“卸载”按钮不显示MSI的UI。因此,控制卸载UI的唯一选择是通过设置ARPNOREMOVE来禁止“卸载”按钮,从而要求用户启动维护。