29

我有一个在 NT 5.x、Vista 和 Windows 7 下完美运行的安装程序。它包含 NT 6.x 上 UAC 的正确清单。

但从 Windows 7 RC 开始,每次安装程序关闭时,Windows 都会产生错误的“此程序可能未正确安装”消息,即使该程序确实安装正确且没有任何问题。我从未在 Vista 或 Windows 7 beta 中收到这些虚假消息。

我向 Microsoft 发送了错误报告,但没有收到回复。我认为这可能只是 Windows 7 RC 中的一个小故障,但在重新安装最近泄露的 RTM 托管版本之一时问题仍然存在。微软对此没有任何文档——甚至没有提示可能触发它的原因。

更令人沮丧的是,即使我在任何安装代码(创建临时目录,提取文件,复制,注册表等)曾经运行过。

有没有人想出这个?

4

3 回答 3

29

好吧,为了回答我自己的问题,我找到了解决这个问题的方法。我注意到 WinRAR 的更新日志表明 WinRAR 的自解压器也遇到了同样的问题,并且已经解决。所以我下载了最新版本的 WinRAR 并将其与早期版本一起放入反汇编程序中,寻找任何新的 API 调用等。长话短说,事实证明它所做的只是将以下内容添加到清单中:

<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
  <application>
    <!--The ID below indicates application support for Windows Vista -->
      <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
    <!--The ID below indicates application support for Windows 7 -->
      <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
  </application>
</compatibility>

一些字符串的谷歌搜索出现了一些文档:显然,这是添加到 Windows 7 的新内容,并且它的文档是在 5 月 20 日创建的。微软没有从任何一个链接到这个并没有帮助他们的 Win7 文档页面,更不用说突出它了。

编辑:这在 MSDN here上记录得很差。

于 2009-07-01T13:59:23.730 回答
3

在运行我构建的基于 Qt 的新应用程序时,我遇到了相同的错误消息。相同的症状 - 无论程序做什么,都会在 .exe 关闭后收到此“有用”消息。

现在我有各种 qt app 项目,都以完全相同的方式构建。其他人都没有这样做。

我终于发现这个错误完全是由于我将这个特定项目命名为“安装程序”这一事实引起的。我最终得到了一个二进制“installer.exe”,毫无疑问,项目名称已经内置在其他地方(没有深入研究 qmake 生成的项目文件,不确定是什么)。

有趣的是,您只需拥有一个名为“安装程序”的项目就可以遇到这个问题。

于 2014-03-30T14:23:22.187 回答
1

您是否将应用程序兼容性工具包扔给您的安装程序?

我以前从来没有理由处理它,但这似乎正是它的意图。

于 2009-07-01T13:46:35.580 回答