首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WiX卸载-重新启动管理器前关闭应用程序

WiX卸载-重新启动管理器前关闭应用程序
EN

Stack Overflow用户
提问于 2010-06-25 00:54:56
回答 1查看 3.3K关注 0票数 3

我有一个安装程序完成了WiX。安装完成后,它会启动一个应用程序,该应用程序会在Explorer进程中注入一些代码。

目前,当我卸载时,重新启动管理器开始工作,并提出关闭我的应用程序和资源管理器。相反,我想手动关闭我的应用程序(这是通过在命令行上使用-exit再次运行它来完成的)。我有一个自定义操作来完成这项工作。

这是我到目前为止尝试过的:

代码语言:javascript
复制
<CustomAction ExeCommand="-exit" FileKey="MyApp.exe" Id="CloseMyApp" Impersonate="yes" Return="ignore" />

<InstallExecuteSequence>
    <RemoveExistingProducts After="InstallInitialize" />
    <Custom Action="CloseMyApp" Before="RemoveFiles" />
</InstallExecuteSequence>

这不管用。该操作是在重新启动管理器会话之后执行的。因此,重新启动管理器弹出,并要求关闭我的应用程序和资源管理器。该操作稍后会运行,但到那时应用程序已经消失了。

所以我试了一下:

代码语言:javascript
复制
<InstallExecuteSequence>
    <RemoveExistingProducts After="InstallInitialize" />
    <Custom Action="CloseMyApp" Before="RemoveExistingProducts" />
</InstallExecuteSequence>

这也不起作用。行动仍然为时已晚。我还收到了"warning LGHT1076 : ICE63: Some between and RemoveExistingProducts.“。

因此,基本上-如何在卸载期间和重新启动管理器会话之前执行我的自定义操作?

我猜如果我使用Impersonate="no“,它可能会在正确的时间运行,但这不是一个选项。这是因为新进程必须以与必须关闭的进程相同的用户身份运行,因为它会查看其窗口并发送消息。如果这两个进程属于不同的用户,那么这就比较棘手了。

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2010-07-11 09:19:04

您需要在InstallValidate之前运行CloseMyApp自定义操作,因为这是处理重新启动管理器的时候(doc。或者,您可以使用MSIDISABLERMRESTART或MSIRESTARTMANAGERCONTROL属性禁用重新启动管理器。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3112121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档