Saya menggunakan file batch berikut yang loop maksimal 300 kali. Ada dua argumen,% 1 adalah jalur ke folder yang berisi file batch, file pfx dan signtool.exe. % 2 adalah path lengkap ke file yang sedang ditandatangani. Anda dapat memanggil ini dalam acara pasca pembangunan studio visual Anda dengan sesuatu seperti panggilan "$ (SolutionDir) thirdparty \ penandatanganan \ sign.bat" "$ (SolutionDir) pihak ketiga \ penandatanganan" "$ (TargetPath)" Saya telah memodifikasi file batch ini menjadi menggunakan server timestamp yang berbeda di setiap iterasi. Saat ini ia menggunakan Comodo, Verisign, GlobalSign, dan Starfield. Semoga ini adalah The Ultimate Signing Script;)
@echo off
REM create an array of timestamp servers...
set SERVERLIST=(http://timestamp.comodoca.com/authenticode http://timestamp.verisign.com/scripts/timestamp.dll http://timestamp.globalsign.com/scripts/timestamp.dll http://tsa.starfieldtech.com)
REM sign the file...
%1\signtool.exe sign /f %1\comodo.pfx /p videodigital %2
set timestampErrors=0
for /L %%a in (1,1,300) do (
for %%s in %SERVERLIST% do (
REM try to timestamp the file. This operation is unreliable and may need to be repeated...
%1\signtool.exe timestamp /t %%s %2
REM check the return value of the timestamping operation and retry a max of ten times...
if ERRORLEVEL 0 if not ERRORLEVEL 1 GOTO succeeded
echo Signing failed. Probably cannot find the timestamp server at %%s
set /a timestampErrors+=1
)
REM wait 2 seconds...
choice /N /T:2 /D:Y >NUL
)
REM return an error code...
echo sign.bat exit code is 1. There were %timestampErrors% timestamping errors.
exit /b 1
:succeeded
REM return a successful code...
echo sign.bat exit code is 0. There were %timestampErrors% timestamping errors.
exit /b 0
Saya juga menempatkan http://timestamp.comodoca.com ke situs terpercaya (terima kasih Vince). Saya pikir itu mungkin langkah penting. Saya juga memperbarui sertifikat root di PC.