gpt4 book ai didi

wix - 卸载时关闭应用程序-WIX

转载 作者:行者123 更新时间:2023-12-04 08:52:54 29 4
gpt4 key购买 nike

我正在使用Wix 3.6。我有一个问题,在卸载时是否打开了任何窗口并显示在任务栏中(此窗口是我试图卸载的msi的一部分),它显示了一个对话框,要求用户关闭应用程序(“在继续安装之前,应关闭以下应用程序”)。

我尝试了以下方法,但是没有运气。

<InstallExecuteSequence>
<Custom Action="WixCloseApplications"
Before="InstallInitialize">Installed</Custom>
<Custom Action="StartMonitor"
After="StartServices">NOT Installed</Custom>
</InstallExecuteSequence>

<util:CloseApplication Id="CloseMonitor" Target="Monitor.exe"
CloseMessage="yes" RebootPrompt="no">
Installed
</util:CloseApplication>

我希望wix检测到应用程序并在卸载过程中将其关闭。无需显示对话框提示。谁能帮我实现它。

它可以通过带有/qn开关的命令提示符进行安装,但是没有/qn开关,则可以正常工作,我会看到对话框(“在继续安装之前,应关闭以下应用程序”)。
有人可以帮我解决此问题。

最佳答案

添加一个C#自定义事件,并在InstallUISequence上添加使其成为第一个事件,并使用以下代码杀死该进程:

try
{
Process proc = Process.GetProcessesByName("MyApplication");
proc.Kill();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}

如果您的应用程序支持多个实例,则计算为否。实例优先:
 int count = 0;
Process[] process = Process.GetProcessesByName("MyApplication");
foreach (Process pr in process)
{
if (pr.MainModule.FileName.Equals(Assembly.GetExecutingAssembly().Location, StringComparison.OrdinalIgnoreCase))
{
count++;

}
}

如果您根本不使用和 DllEntry,请遵循此 link

关于wix - 卸载时关闭应用程序-WIX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12527915/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com