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 从自定义操作关闭MSI_Wix - Fatal编程技术网

Wix 从自定义操作关闭MSI

Wix 从自定义操作关闭MSI,wix,Wix,我创建了一个自定义操作,该操作在InstallUISequence中执行以提升权限。该代码检查权限是否不存在,它将为同一MSI启动提升的新进程 publicstaticactionresult电梯安装程序(会话) { WindowsPrincipal=新的WindowsPrincipal(WindowsIdentity.GetCurrent()); bool hassadminiveright=principal.IsInRole(WindowsBuiltInRole.Administrator

我创建了一个自定义操作,该操作在InstallUISequence中执行以提升权限。该代码检查权限是否不存在,它将为同一MSI启动提升的新进程

publicstaticactionresult电梯安装程序(会话)
{
WindowsPrincipal=新的WindowsPrincipal(WindowsIdentity.GetCurrent());
bool hassadminiveright=principal.IsInRole(WindowsBuiltInRole.Administrator);
如果(!hasAdministrativeRight)
{
ProcessStartInfo processInfo=新的ProcessStartInfo();
processInfo.Verb=“runas”;
processInfo.FileName=“msiexec”;
processInfo.Arguments=“/i\”+会话[“原始数据库”]+“\”;
尝试
{
使用(Process exeProcess=Process.Start(processInfo))
{
exeProcess.WaitForExit();
}
返回ActionResult.skipreminingactions;
}
捕获(例外e)
{          
返回ActionResult.UserExit;
}
}         
其他的
{
返回操作结果。成功;
}
}

此CA可以很好地启动提升的MSI。但是,提升的MSI完成执行后,主MSI将显示摘要对话框。有没有一种方法可以跳过它并关闭MSI?

在UI中处理此问题的典型方法是提供一个自定义对话框(或至少是一个信息对话框),该对话框只显示“取消”按钮,因此用户无法执行下一步操作来推进安装。您可以通过设置导致显示自定义对话框的属性来实现这一点。换句话说,这与安装无法继续的任何其他情况相同-禁用“下一步”按钮,只启用“取消”


我不知道你说的“摘要对话”是什么意思

看起来你已经让你的朋友几乎完全按照你的意愿去做了。然而,它仍然会导致正在执行的一个终止标志。在这种情况下,您必须想出一种方法来防止它显示对话框;也许只为这个案例提供一个条件。

谢谢你的回答,菲尔!这对我很管用。我在wix代码中创建了一个默认值为0的属性,当CA提升权限并启动新的MSI时,我正在更新此属性。更新了InstallUISequence。仅当属性值为0时,才会显示摘要对话框。