我正处于一种痛苦之中。我有一个安装程序安装并启动托盘图标应用程序(通用.exe)
这是正常工作的,但现在我想在这个 UI 告诉用户手动关闭应用程序出现之前停止该应用程序,因为在卸载例程期间,我的托盘图标被删除,但该进程仍在运行。
我应用此自定义操作在卸载之前(甚至卸载期间)关闭应用程序
<CustomAction Id="CloseTrayApp" ExeCommand="-exit" FileKey="TrayApp" Execute="immediate" Return="asyncNoWait" />
<InstallExecuteSequence>
<Custom Action="CloseTrayApp" Before="InstallValidate" />
</InstallExecuteSequence>
但“关闭所有正在运行的应用程序”对话框仍然弹出,但我认为这会解决我的问题。
我已经尝试使用 CloseAction 但由于编译时出错而急于使用它。它说 WixUtils 命名空间可能丢失,但我仔细检查它是否存在:
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"
如何避免弹出对话框窗口并触发执行此自定义操作?
您还必须添加对 WixUtilExtension.dll 的引用。如果您使用的是 Visual Studio / Votive,只需右键单击“添加引用”并从 [ProgramFilesFolder]Windows Installer XML v3.5\bin 中选择 DLL。否则,您必须使扩展可供编译器和链接器使用:
candle.exe yourfile.wxs -ext %full path to WixUtilExtension.dll%'
light.exe yourfile.wixobj -ext %full path to WixUtilExtension.dll% –out yourfile.msi yourfile.wixout'
更多信息请访问:
使用标准自定义操作
请注意,CloseApp 自定义操作有一个限制,即它不会“终止”您的应用程序。它只会礼貌地向您的应用程序发送 WM_CLOSE 消息,并且由您的托盘应用程序在关闭时接收和处理该消息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)