在Vista或更新的Windows中卸载我们的应用程序(Web服务器)后,会出现一个错误消息框,显示“尝试卸载My App时出错”。它可能已经被卸载。是否要从“程序和功能”列表中删除“我的应用程序”?';并且有“是”和“否”按钮。这在我的安装程序关闭之后和系统重新启动之前发生。 (重新启动后,应用程序不再位于ARP列表中,因此不需要错误消息。)
这似乎与this重复,但消息框不同,只有在满足以下所有条件时才会发生:
我已尝试将值放入HKLM \ Software \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Compatibility Assistant \下的注册表中,并保留控制面板运行的安装程序副本的路径(这是旧版安装程序)这是基于早于Windows安装程序的InstallShield技术)。虽然注册表修复程序可用于防止在执行添加/删除组件安装时出现的UAC消息(或者,使用新版本,修改安装),但它不会阻止此操作。
我需要一种方法来防止错误消息,因为正在将其视为释放阻止程序。有一些解决方法可以阻止消息(包括不卸载IIS),但是高层对解决方法不感兴趣;他们希望解决实际问题。 (下一个版本的安装程序将使用最新的技术,所以谢天谢地,这是一次性的头痛。)
编辑在做了一些实验之后,我发现当我们的安装程序退出并启动系统重启时,正在执行某些操作以使控制面板显示错误消息的是IIS的卸载。 (我们的安装程序通过带有/ norestart选项的pkgmgr.exe命令行卸载IIS - 一旦它准备就绪,我们的安装程序就会负责重新启动。)