1

在 Vista 或更新版本的 Windows 中卸载我们的应用程序(网络服务器)后,会出现一个错误消息框,显示“尝试卸载我的应用程序时发生错误。它可能已经被卸载。您想从程序和功能列表中删除我的应用程序吗?并且有“是”和“否”按钮。这发生在我的安装程序关闭之后和系统重新启动之前。(重启后,应用程序不再在 ARP 列表中,因此该错误信息是不必要的。)

这似乎与this重复,但消息框不同,仅在满足以下所有条件时才会发生:

  • 程序和功能控制面板已打开
  • 安装程序卸载 IIS(如果我们的安装程序一开始没有安装 IIS,则没有完成,有其他网站在使用它,或者用户在给出选项时选择不卸载它)
  • 在我们的安装程序中,用户同意立即重新启动。

我尝试在 HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Persisted 下的注册表中输入一个值,其中包含控制面板运行的安装程序副本的路径(它是基于早于 Windows 安装程序的 InstallShield 技术)。虽然注册表修复可以防止在执行添加/删除组件安装(或者,使用新的术语,修改安装)时出现的 UAC 消息,但它不会阻止这个。

我需要一种方法来防止错误消息,因为权力将其视为释放阻止程序。有一些变通方法可以阻止该消息(包括不卸载 IIS),但上级对变通方法不感兴趣;他们希望解决实际问题。(下一个版本的安装程序将使用最新的技术,所以谢天谢地,这是一次令人头疼的问题。)

编辑:在做了一些实验之后,我发现卸载 IIS 会在我们的安装程序退出并启动系统重新启动时使控制面板显示错误消息。(我们的安装程序通过带有 /norestart 选项的 pkgmgr.exe 命令行卸载 IIS——一旦准备好,我们的安装程序会在这种情况下负责重新启动。)

4

1 回答 1

1

这似乎是 Windows 的错误:http: //support.microsoft.com/kb/2002473/

于 2010-10-19T14:01:34.150 回答