我有一个带有使用Wix开发的MSI安装程序的.NET 4桌面应用程序。
目前,当我的应用程序最小化运行到系统托盘并且用户尝试从控制面板卸载它时,卸载就会通过,ProgramFiles位置的文件被删除,仍在运行的应用程序会抛出一堆异常。
为了防止这种情况,我在我的wxs文件中设置了一个自定义动作集:
<Custom Action="CheckForRunningInstance" After="ValidateProductID">(REMOVE="ALL") OR NOT(REMOVE="ALL")</Custom>
检查我的应用程序的任何实例当前是否正在运行,以防止安装程序进行处理。如果我尝试运行我的MSI文件,它可以正常运行,但是当用户尝试从控制面板&gt;卸载应用程序时,不会运行此CA.添加/删除程序。 在这种情况下有没有办法强迫它?
答案 0 :(得分:2)
您需要将自定义操作置于 InstallExecuteSequence 中,以便即使程序包未使用完整的UI运行也会调用它。