Nee, sieht OK aus.
Wenn die KTE_Release das hat, dann muss die Development_Runtime das natürlich auch haben, dazumal in der ja die Signatur hinzugefügt wurde.
Und egal ob das Zertifikat installiert ist oder nicht, angezeigt muß es dennoch werden, da es ja in der EXE drin stekt.
Das "Installiert" im Zertifikatsspeicher entscheidet nur darüber
wie es angezeigt wird, also ob es verifiziert werden kann oder nicht.
Ich denke hier eher daran, dass z.B. der Explorer noch den alten Inhalt anzeigt und nicht aktualisiert wurde.
Ich hab das öfters mal mit der Dateigröße oder dem Änderungsdatum ... da hilft dann nichtmal ein F5 oder Explorer zu+auf ... aber mal kurz den Dateieigenschaftendialog auf und schon stimmte es auch in der Liste wieder, das kappte bisher eigentlich immer.
Aber du weißt doch bestimmt selbst, dass eine Fehlerhandlung nie schaden kann.
Code:
@echo off
:: ExitCode: 0 = OK / 1 = Failure / 2 = Warning
set file=xxx
set outdir=E:\Projects\Projects_Delphi\%file%\_out
set signtool="E:\Projects\Projects_Delphi\%file%\Certificate\Tools\signtool.exe"
if not exist "%outdir%\Development_Runtime\%file%.exe" exit /b 1
if not exist "%outdir%\app\KTE_Release\
Win32" (
md "%outdir%\app\%file%_Release\
Win32"
if errorlevel 1 exit /b 1
)
%signtool% sign /v /s "%file% Certificate Store" /n "%file% Signierung" /fd SHA256 "%outdir%\Development_Runtime\%file%.exe"
if errorlevel 1 exit /b %errorlevel%
%signtool% verify /pa /v "%outdir%\Development_Runtime\%file%.exe"
if errorlevel 1 exit /b %errorlevel%
copy "%outdir%\Development_Runtime\%file%.exe" "%outdir%\app\KTE_Release\
Win32\%file%.exe"
if errorlevel 1 exit /b 1
@ : damit auch das echo off nicht angezeigt wird, weil ist ja erst danach aus
set : damit das Ganze bissl übersichtlicher wird
exit 123 und errorlevel : damit man außerhalb auch eine Fehlerprüfung vornehmen kann, z.B. im FinalBuilder/BuildServer/BuildScript oder Dergleichen das Ergebnis auswerten
exit /b statt exit : damit nur dieses Script abgebrochen und nicht gleich ALLEs (das aufrufende Script)
Statt BEFEHL mit anschließendem IF ginge z.B. auch
COPY source dest || exit 1
, also wenn beim Ersten der ErrorLevel > 0, dann das Zweite ausführen.
https://ss64.com/nt/syntax-conditional.html
Code:
deine.cmd
if errorlevel 1 echo Fehler %errorlevel% & pause