我有一个完全在NT 5.x,Vista和Windows 7下工作的安装程序。它在NT 6.x上包含适当的UAC清单。
但是从Windows 7 RC开始,每次安装程序closures时,Windows都会产生一个错误的“这个程序可能没有正确安装”的信息,尽pipe程序的安装没有问题。 我从来没有在Vista或Windows 7testing版中得到这些虚假消息。
我向微软发送了一个错误报告,但还没有收到回复。 我认为这可能只是Windows 7 RC中的一个小故障,但问题仍然在于最近一次RTM-escrow构build泄露的新安装。 微软没有任何关于这方面的文档 – 甚至没有提示可能触发它的提示。
更令人沮丧的是,即使在任何安装代码(创build)之前在第一个“您确定要继续”屏幕上取消安装,我也会得到“该程序可能没有正确安装”临时目录,提取文件,复制,registry等)是永远运行。
有没有人想过这个呢?
那么,回答我自己的问题,我找到了解决这个问题的方法。 我注意到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 这里 。
运行一个新的基于Qt的应用程序时,我遇到了同样的错误信息。 同样的症状 – 在.exe关闭后会得到这个“有用”的信息,不管程序做了什么。
现在我有各种各样的qt应用程序项目,都建立完全相同的方式。 而其他人都没有这样做。
我终于明白,这个错误是由于我已经命名这个特定的项目“安装程序”的事实。 我最终得到了一个二进制的“installer.exe”,毫无疑问,在其他地方内置了项目名称(而不是钻研qmake生成的项目文件,不完全确定是什么)。
感兴趣的是,只要有一个名为“installer”的项目,就可以解决这个问题。
您是否在安装程序中抛出了应用程序兼容性工具包 ?
我从来没有理由处理它,但这似乎正是它的目的。