当我使用 7zip 创建适用于 Windows 的自解压存档可执行文件时,.EXE 会在 Windows7 上触发 UAC。解压后,我经常收到以下信息:
我正在使用类似这样的命令行:7z a -sfx7z.sfx dir\
。为什么会发生这些事情?我能修复它们吗?
答案1
您可能想要禁用此警告,如果是这样,请按照以下步骤操作。
- 打开服务管理器(按
+
R,输入services.msc
并点击Enter)。 Program Compatibility Assistance Service
在列表中搜索。- 右键单击此服务并选择
Stop
。 - 现在再次右键单击
Program Compatibility Assistance Service
并选择Properties
。 General
在该部分的选项卡下Startup type
,点击下拉菜单并选择Disabled
。Apply
然后点击OK
。
注意:程序兼容性帮助会监控程序中已知的兼容性问题,这对最终用户非常有帮助。此提示针对高级用户。
其他probable solution
嵌入清单文件以避免出现此警报。如下所示:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!--The ID below indicates application support for Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
</application>
</compatibility>
</assembly>
如何嵌入application manifest
进入我的可执行文件?
您可以使用此实用程序(mt.exe
- 假设您已安装 sdk)来自 Microsoft 来执行此操作。您可以使用类似这样的命令:
mt.exe -manifest "foo.manifest" -outputresource:"foo.exe";#1
其他考虑因素
- 考虑使用这个程序(
7z SFX-Creator
),根据此页面:创建的自解压档案将不再引起 PCA 警报。 - 看看速递可能对你有用
答案2
您的自解压存档可能在文件名中包含setup
或。在这种情况下,Windows 期望它安装一个应用程序。install
如果 Windows 没有检测到“正常的安装程序活动”,它会认为安装失败是因为缺少管理员权限。这就是它提示重新运行安装的原因使用推荐的设置,具有提升的权限。
这种启发式方法用于可执行文件没有requestedExecutionLevel
其清单中的元素。
该问题可能已在较新版本的 7zip 自解压模块中得到修复。