【发布时间】:2012-09-21 14:15:46
【问题描述】:
当我运行我的应用程序“驱动程序安装程序和卸载程序应用程序”时,一旦我的 exe 成功结束,我就会得到一个“程序兼容性助手”窗口。通过 SO 链接和谷歌搜索后,我找不到解决方案来避免 vista 32 中的“程序兼容性助手”窗口。我使用下面的清单来避免 PCA,它按预期工作(在 Windows 7 中没有得到任何 PCA 窗口)但是除了windows vista 32?我应该怎么做才能完成这项工作?
在为我的安装程序应用程序使用以下清单后,我不是 在 windows 7 中获取 PCA 窗口,但它出现在 windows vista 上 32 位。 vista32中如何避免PCA窗口?
一些相关的问题是:
- how-do-i-prevent-programmatically-the-program-compatibility-assistant-in-vista
- reasons-for-getting-the-program-compatibility-assistant-dialog
这是我使用的清单:
<?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 窗口的快照...
更新:PCA 窗口的根本原因是“我的安装程序没有在添加或删除程序中创建条目”。我让我的应用程序在“添加或删除程序”中输入了一个条目,但没有得到任何 PCA 窗口。但我不想在添加或删除程序中输入。
25-09-12 更新:我有一个可执行文件说
A.exe,它发现 操作系统的体系结构,取决于它调用的体系结构A64.exe or A86.exe。在这种情况下,我是否想要为所有人提供清单 exe的(A.exe,A64.exe,A86.exe)?现在我只有 A.exe 的清单。
【问题讨论】:
-
@Deanna 我已编辑。简而言之,我的应用程序的上述清单在 Windows 7 中没有显示 PCA 窗口,但它出现在 Vista32 位中?
-
@Deanna 对此有何想法或仍想改进我的问题?
-
我现在没有答案。
-
@Deanna 我要设置赏金来吸引更多关注吗?我真的被困在这个......
-
如果你愿意,这就是赏金的目的。
标签: winapi windows-vista manifest compatibility uac