我有一个简单的应用程序,我刚刚在win7(32位)上尝试了安装程序(Innosetup)。
安装完成后,桌面上的程序图标会在其上显示屏蔽,通知用户应用程序需要提升权限。我认为安装程序有问题,而且使用NSIS代替同样的问题。
有谁知道为什么它会在这台电脑上运行,而不是在xp-32,win7-64位或Vista 64位上?
如果我允许应用程序运行(对系统提示符为“是”),则只会出现错误“遇到错误.Windows正在寻找解决方案”然后关闭。
答案 0 :(得分:1)
这很可能与“程序兼容性助手”有关,认为您的应用程序不兼容(因为您没有指定它)并且“猜测”它需要提升。
尝试添加正确的Application Manifest以表示不需要提升,并且Vista和Windows 7都是受支持的操作系统...以下是一个示例:
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="False">
</requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"></supportedOS>
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"></supportedOS>
</application>
</compatibility>
</assembly>
答案 1 :(得分:1)
我在通过NSIS安装程序安装的Windows 7计算机上遇到了与您相同的问题:应用程序在启动程序和桌面快捷方式上有“屏蔽”图标。
我们解决了将这个简单的行添加到创建安装程序的NSIS脚本中的问题:
RequestExecutionLevel user
http://nsis.sourceforge.net/Docs/Chapter4.html(搜索UAC)
希望这可能有助于解决您的问题。
答案 2 :(得分:0)
我至少可以回答你的一个问题:
你不会在XP上看到盾牌图标,因为WinXP中没有高程概念。 WinXP不支持Vista中首次引入的UAC。
然而,Vista32 / 64和Win7-32 / 64都支持UAC,所以我无法想象为什么Win7-32中的行为会有所不同。您是否修改了正在测试的其他操作系统中的UAC设置?
答案 3 :(得分:0)
这可能与安装程序无关,而是快捷方式的目标(您的应用程序?)
如果Windows认为快捷方式指向需要提升的程序,则会显示屏蔽覆盖图标。如果目标有一个请求执行级别为requireAdministrator的清单(如果您是管理员,则为highestAvailable),或者目标没有“Vista”清单且Windows检测到这是补丁/安装/安装应用程序或应用程序时,它将显示它兼容性问题。
我猜你的应用程序没有清单。如果要删除叠加层,请尝试添加带有requestedExecutionLevel asInvoker的清单(并不是说这会关闭该应用程序的虚拟化和其他兼容性内容)