Die UAC-Prompt zeigt eine temporäre Zufallsprogrammname für msi, kann der korrekte Name angezeigt werden?

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

Frage

Ich baue einen MSI-Installer für Windows und melden Sie den Installer mit Signtool. Als ich die .msi laufen, es zu testen, die UAC (User Account Control) prompt zeigt sich, mich zu fragen, ob ich mit der Installation fortfahren zulassen möchten. Das ist in Ordnung, aber die Eingabeaufforderung zeigt eine Anzahl von Feldern, und für die Programmnamen Feld wird es so etwas wie „403b3.msi“. Dies ist nicht der Name des msi Ich renne.

Wie kann ich die richtige Programmname erhalten angezeigt werden?

War es hilfreich?

Lösung

Verwenden Sie das / d Befehlszeilenargument mit dem Programmnamen erforderlich, wenn Signtool Ausführen des msi zu unterschreiben.

Es scheint, dass das Windows Installer eine temporäre Kopie der msi-Datei und ordnet sie ein generierten Namen es vor der Ausführung erstellt. Wenn Sie nicht verwenden / d mit Signtool, erhalten Sie die temporären Dateinamen, um zu sehen, die für die Benutzer nicht sehr nützlich ist.

Andere Tipps

Dies ist eine angewandte Version von @ Scott-langham Kommentar.

Das war direkt aus dem Postbuildevent eines Visual Studio Installer-Projekt - VDPROJ Datei

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
)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top