최대 300 회 반복되는 다음 배치 파일을 사용합니다. 두 개의 인수가 있습니다. % 1은 배치 파일, pfx 파일 및 signtool.exe를 포함하는 폴더의 경로입니다. % 2는 서명중인 파일의 전체 경로입니다. Visual Studio 빌드 후 이벤트에서 호출 "$ (SolutionDir) thirdparty \ signing \ sign.bat" "$ (SolutionDir) thirdparty \ signing" "$ (TargetPath)"와 같이 호출 할 수 있습니다.이 배치 파일을 다음과 같이 수정했습니다. 각 반복에서 다른 타임 스탬프 서버를 사용합니다. 현재 Comodo, Verisign, GlobalSign 및 Starfield를 사용합니다. 바라건대 이것은 궁극적 인 서명 스크립트입니다;)
@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
또한 http://timestamp.comodoca.com 을 신뢰할 수있는 사이트에 넣었습니다 (Vince에게 감사드립니다). 중요한 단계라고 생각합니다. PC에서도 루트 인증서를 업데이트했습니다.