Gli spettacoli UAC una temporanea a caso il nome del programma per MSI, è possibile visualizzare il nome corretto?

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

Domanda

Sto costruendo un programma di installazione MSI per le finestre e firmare il programma di installazione utilizzando SignTool. Quando eseguo il msi per testarlo, l'UAC (User Account Control) mostra pronta a chiedere a me se voglio consentire il proseguimento dell'installazione. Va bene, ma gli spettacoli pronta una serie di campi, e per il campo Nome programma visualizza qualcosa come "403b3.msi". Questo non è il nome del MSI sto correndo.

Come posso ottenere il nome corretto del programma da visualizzare?

È stato utile?

Soluzione

Usa il d argomento / riga di comando con il nome del programma richiesto durante l'esecuzione signtool di firmare il msi.

Sembra che le finestre di installazione crea una copia temporanea del file MSI e assegna un nome generato prima di eseguirlo. Se non si utilizza / d con signtool, si arriva a vedere il nome del file temporaneo che non è molto utile per gli utenti.

Altri suggerimenti

Questa è una versione applicata del @ commento di Scott-Langham.

questo è stato direttamente dal PostBuildEvent di un progetto di installazione di Visual Studio - file di 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
)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top