&引用;此程序可能未正确安装";Windows7RC中的消息

&引用;此程序可能未正确安装";Windows7RC中的消息,windows,installation,compatibility,Windows,Installation,Compatibility,我有一个安装程序,可以在NT5.x、Vista和Windows7下完美运行。它包含NT 6.x上UAC的正确清单 但从Windows7RC开始,每次安装程序关闭时,Windows都会生成错误的“此程序可能未正确安装”消息,即使该程序安装正确,没有任何问题。我从未在Vista或Windows7测试版中收到过这些虚假消息 我向微软发送了一份错误报告,但没有得到回复。我认为这可能只是Windows7RC中的一个小故障,但问题仍然存在于最近泄漏的一个RTM托管版本的新安装上。微软没有任何关于这方面的文档

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

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

我向微软发送了一份错误报告,但没有得到回复。我认为这可能只是Windows7RC中的一个小故障,但问题仍然存在于最近泄漏的一个RTM托管版本的新安装上。微软没有任何关于这方面的文档——甚至没有任何可能触发它的提示

更令人沮丧的是,即使我第一次取消安装,我仍会收到“此程序可能未正确安装”消息。在任何安装代码(创建临时目录、提取文件、复制、注册表等)运行之前,是否确实要继续屏幕

有人想出这个办法了吗?

你有没有向你的安装程序扔过这个


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

好吧,回答我自己的问题,我找到了解决这个问题的方法。我注意到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>


.

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

现在我有各种各样的qt应用程序项目,它们都是以完全相同的方式构建的。其他人都不这么做

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


有趣的是,只要有一个名为“installer”的项目,你就可以遇到这个问题。

下面是关于ServerFault的吗?这是程序员的问题。如果我要创建一个安装程序,我希望它通过Windows 7的正确安装标准。对不起,我应该澄清一下:当我说,“我有一个安装程序”,我的意思是“我用C创建了一个安装程序。”,这就是为什么这是堆栈溢出而不是服务器故障。是的,我试过了。筛选日志中生成的每个条目,但找不到任何有用的信息。这实际上并不能解决根本问题。你只是告诉Windows不要再报告了;Windows 7:具有兼容性部分的应用程序将无法获得PCA缓解。诚然,在某些情况下,这可能是一条可行之路。嗯,目前还不完全清楚Windows是否正确地报告了这一点。安装程序在禁用PCA的情况下按设计工作,正如我在另一篇评论中指出的,我很久以前就浏览了应用程序验证程序日志,甚至查找了各种API调用,以确保这些不是我错过的新Win7警告。我把安装程序拆得太多了,以至于它什么都没做,Windows仍然在抱怨。所以我很确定这是正确的行动方针。