Sco*_*ham 53 windows uac certificate signtool
我正在构建Windows的MSI安装程序并使用signtool对安装程序进行签名.当我运行.msi进行测试时,UAC(用户帐户控制)提示出现,询问我是否要允许安装继续进行.没关系,但是提示显示了许多字段,而对于Program Name字段,它显示的内容类似于"403b3.msi".这不是我正在运行的msi的名称.
如何才能显示正确的程序名称?
Sco*_*ham 65
在执行signtool以对msi进行签名时,将/ d命令行参数与所需的程序名一起使用.
Windows安装程序似乎会创建msi文件的临时副本,并在运行之前为其分配生成的名称.如果你不使用/ d与signtool,你会看到对你的用户不是很有用的临时文件名.
这是@Scott-langham 评论的应用版本。
这直接来自 Visual Studio 安装程序项目的 PostBuildEvent - VDPROJ 文件
set signtool="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\signtool.exe"
set timestampurl=http://timestamp.digicert.com
set certpath="$(ProjectDir)CodeSigningCert.pfx"
:: Setup in your user environment variables
:: using something with low sort order to force off screen ZZCODECERTPASSWORD
if []==[%ZZCODECERTPASSWORD%] (
echo must set code signing certificate in ZZCODECERTPASSWORD environment variable. stopping build.
exit /b 2
)
:: need the filename with extension that is being generated
FOR /f %%i IN ("$(BuiltOuputPath)") DO (
SET outputfilename=%%~nxi
)
%signtool% sign /t %timestampurl% /f %certpath% /p %CODECERTPW% /d %outputfilename% "$(BuiltOuputPath)"
IF ERRORLEVEL 1 (
echo failed to sign MSI
exit /b 3
)
%signtool% sign /t %timestampurl% /f %certpath% /p %CODECERTPW% "$(ProjectDir)$(Configuration)\Setup.exe"
IF ERRORLEVEL 1 (
echo failed to sign boostrap setup EXE
exit /b 4
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6369 次 |
| 最近记录: |