我需要使用p12文件为Windows签署安装程序可执行文件。
签名之前,此EXE文件图标上有一个“盾牌图标”,表示它需要管理权限。
但是,在使用signtool和以下命令签名后:
signtool.exe sign /f mycert.pfx /p <password> /t http://timestamp.verisign.com/scripts/timstamp.dll /v "<file to be signed>"
签名成功但盾牌图标消失。当我运行生成的可执行文件时,它会失败,因为它不再以管理权限运行。
为了签署可执行文件并让它保留其管理权限,我需要做什么?
答案 0 :(得分:0)
您应该在应用程序的清单中将requestedExecutionLevel设置为requireAdministrator,以将其声明为需要管理员权限。
我怀疑您的应用已被命名为#34; install&#34;或类似的,因此非签名和显示的版本作为向后兼容性设置的一部分选择了管理员要求,但现在它看起来像当前的应用程序,因此Windows检查以查看它请求的权限,因为它没有&#39 ;请求任何应用程序都不会被提升。
参见Create and Embed an Application Manifest with Your Application 根据应用的创建方式,还请查看/MANIFESTUAC (Embeds UAC information in manifest)和/win32manifest (C# Compiler Options)