如何防止Vista上的“此程序可能没有正确安装”消息

我有一个产品安装程序可执行文件,将一些文件复制到用户的硬盘驱动器。 它不是一般意义上的典型安装程序(它不会在“开始”菜单或“程序文件”文件夹中添加任何内容)。

每次安装程序在Vista上运行时,在exe终止后,Vista会产生一个任务对话框:

  • 该程序可能没有正确安装
  • 使用推荐configuration重新安装
  • 这个程序正确地安装了

是否有一个函数,我需要从EXE或registry项调用设置,向操作系统表明该程序安装正确(或至less抑制此消息)?

相关问题: Windows 7 RC中的“此程序可能安装不正确” (针对Windows 7特定的问题)

您需要将一些信息添加到registry的AppCompat部分。

请参阅此链接并查找“如何禁用程序兼容性助手警告”。

另外,显然有一种方法需要在安装程序可执行文件中添加一个清单文件,将其标记为“支持Vista”。

在程序的清单文件中包含这个部分:

<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}"/> <!--The ID below indicates application support for Windows 8 --> <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> <!--The ID below indicates application support for Windows 8.1 --> <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> <!--The ID below indicates application support for Windows 10 --> <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/> </application> </compatibility> 

它会通过声明您的应用程序与Vista和Win 7兼容来抑制程序兼容性助手。

你应该尝试的第一件事是添加一个“Vista清单”与requestedExecutionLevel

如果这是不够的(点击取消卸载UACclosures等),你需要使用无证件的东西,如在PE头设置图像版本字段为6.0

此消息popup的原因之一是当系统认为您正在运行安装程序但在“添加/删除程序”列表中找不到应用程序的条目时。

我不知道你的应用程序是否属于这种情况,但值得检查。

这似乎有更多的原因。 如果你重命名你的应用程序还要记住Assembly Information中的名字,它们都必须是相等的,否则可能会popup:nP屏幕“这个程序可能没有正确安装”。 在这里输入图像说明

也可以直接在AssemblyInfo.vb / .cs文件中修改