Los espectáculos UAC de forma aleatoria temporal Nombre del programa de MSI, se pueden mostrar el nombre correcto?

StackOverflow https://stackoverflow.com/questions/4315840

Pregunta

Estoy construyendo un instalador MSI para ventanas y firmar el instalador usando signtool. Cuando ejecuto el .msi para probarlo, el UAC (User Account Control) muestra rápidas hasta me pregunta si quiero permitir que continúe la instalación. Eso está bien, pero los espectáculos con prontitud una serie de campos, y para el campo de nombre del programa que muestra algo así como "403b3.msi". Este no es el nombre de la MSI estoy corriendo.

¿Cómo puedo obtener la correcta nombre del programa que se mostrará?

¿Fue útil?

Solución

Usar el argumento de línea de comandos / d con el nombre del programa requerido al ejecutar signtool a firmar el msi.

Parece que las ventanas de instalación crea una copia temporal del archivo msi y le asigna un nombre generado antes de ejecutarlo. Si no se utiliza / d con signtool, se llega a ver el nombre del archivo temporal que no es muy útil para los usuarios.

Otros consejos

esta es una versión aplicada de @ comentarios de Scott-langham.

esto era directamente de la PostBuildEvent de un proyecto de instalación de Visual Studio - VDPROJ archivo

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
)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top