程序兼容性助手清单在Vista32中不起作用

时间:2012-09-21 14:15:47

标签: winapi windows-vista manifest compatibility uac

当我运行我的应用程序“驱动程序安装程序和卸载程序应用程序”时,一旦我的exe成功结束,我就会收到“程序兼容性助手”窗口。经过SO链接和谷歌搜索后,我无法找到一个解决方案来避免在Vista 32中的“程序兼容性助手”窗口。我使用下面的清单来避免PCA并且它按预期工作(我没有在Windows 7中获得任何PCA窗口)但除了windows vista 32?我应该怎么做才能使这项工作?

  

在我的安装程序应用程序使用以下清单之后,我不是   在Windows 7中获取PCA窗口,但它出现在Windows Vista上   32位。如何在vista32中避免PCA窗口?

一些相关问题是:

这是我使用的清单:

 <?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <assemblyIdentity version="1.0.0.0" name="Unins.exe"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <requestedExecutionLevel level="highestAvailable" uiAccess="false" />
      </requestedPrivileges>
    </security>
  </trustInfo>
  <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>
</asmv1:assembly>

以下是我得到的PCA窗口的快照......

Snap Shot of PCA window

更新:PCA窗口的根本原因是“我的安装程序未在”添加或删除程序“中创建条目。我让我的应用程序在“添加或删除程序”中输入一个条目,但没有得到任何PCA窗口。但我不想在添加或删除程序中输入条目。

  

更新25-09-12:我找到了一个可执行文件A.exe   操作系统的体系结构,取决于它所调用的体系结构   A64.exe or A86.exe。在这种情况下,我是否希望为所有人提供清单   exe的(A.exe,A64.exe,A86.exe)?现在我只为A.exe表现。

1 个答案:

答案 0 :(得分:1)

为了完全退出PCA,您肯定需要在所有三个可执行文件中包含清单。