windows - para - programas radiales
El indicador de UAC muestra un nombre de programa aleatorio temporal para msi, ¿se puede mostrar el nombre correcto? (2)
Estoy creando un instalador de MSI para Windows y firmo el instalador usando signtool. Cuando ejecuto el archivo .msi para probarlo, aparece el indicador de UAC (Control de cuentas de usuario) para preguntarme si quiero permitir que la instalación continúe. Eso está bien, pero el indicador muestra varios campos, y para el campo Nombre del programa muestra algo como "403b3.msi". Este no es el nombre del msi que estoy ejecutando.
¿Cómo puedo obtener el nombre del programa correcto que se mostrará?
Esta es una versión aplicada del comentario de @ Scott-langham.
esto fue directamente del PostBuildEvent de un proyecto de instalador de estudio visual - archivo 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
)
Use el argumento de la línea de comandos / d con el nombre del programa requerido cuando ejecute signtool para firmar el msi.
Parece que el instalador de Windows crea una copia temporal del archivo msi y le asigna un nombre generado antes de ejecutarlo. Si no usa / d con signtool, puede ver el nombre de archivo temporal que no es muy útil para sus usuarios.