我正在使用 Microsoft Visual Studio 2010 为我的简单 .EXE 应用程序创建一个简单的 .MSI 安装程序。
麻烦的是,如果您在 .EXE 仍在运行时安装升级,事情就会出错(直到重新启动)。
我希望 .MSI 安装程序在安装/升级之前终止我的进程。
请问有人可以告诉我如何在 Orca 中做到这一点吗?
编辑:我已经看到由于我的 .EXE 正在使用而发生这种情况,但我也看到了它,因为 .CHM 帮助文件在升级时也是打开的,因此仅靠任何进程终止都不足以解决这个问题问题。
我正在使用 Microsoft Visual Studio 2010 为我的简单 .EXE 应用程序创建一个简单的 .MSI 安装程序。
麻烦的是,如果您在 .EXE 仍在运行时安装升级,事情就会出错(直到重新启动)。
我希望 .MSI 安装程序在安装/升级之前终止我的进程。
请问有人可以告诉我如何在 Orca 中做到这一点吗?
编辑:我已经看到由于我的 .EXE 正在使用而发生这种情况,但我也看到了它,因为 .CHM 帮助文件在升级时也是打开的,因此仅靠任何进程终止都不足以解决这个问题问题。
您应该将MsiRMFilesInUse 对话框添加到您的安装程序中。
您可以尝试创建一个自定义操作来停止您的应用程序(您编写的自定义 EXE 或 DLL)。例如,您可以将 WM_CLOSE 发送到主应用程序窗口(您的应用程序应该处理此消息)。
此自定义操作应在 InstallExecuteSequence 表中的 InstallValidate 操作之前安排。
您可以编写一个自定义操作来关闭您的应用程序以及您的帮助文件。
您应该能够使用 FindWindow 找到这两个窗口句柄:http: //msdn.microsoft.com/en-us/library/ms633499 (v=vs.85).aspx
对于可执行文件,您应该能够为 FindWindow 使用适当的窗口类或标题。对于帮助文件,您应该能够为 FindWindow 使用适当的帮助窗口标题。
我希望这有帮助!