Saya mencoba mengatur perintah "Sign Tools" Inno Setup IDE untuk menggunakan jalur relatif. Saya membuat skrip sign.bat yang memanggil signtool.exe mengikuti struktur file di bawah ini:

code_sign\
          + sign.bat
          + signtool.exe
          + cert.pfx
script.iss

Jika saya menyetel perintah Alat Tanda (Tools / Configure Sign Tools...) ke code_sign\sign.bat $p, saya mendapatkan pesan kesalahan berikut:

   Sign Tool command failed (Failed to execute Sign Tool.

Error 2: The system cannot find the file specified). Will retry (2 tries left).
   Running Sign Tool command: sign.bat "(...)\uninst.e32.tmp"
   Sign Tool command failed (Failed to execute Sign Tool.
(...)

Apa jalur kerja saat alat tanda dipanggil?

Sayangnya saya tidak dapat menggunakan jalur absolut (yang berfungsi) karena folder code_sign dimaksudkan sebagai submodul yang dibagikan dengan aplikasi lain dan pengguna lain.

Apa yang saya lakukan salah di sini? Haruskah saya menggunakan versi baris perintah?

Sunting: seperti yang diminta, konten sign.bat:

SET script_path=%~dp0
SET stool=%script_path%signtool.exe
SET pfx=%script_path%cert.pfx

SET ntp=http://timestamp.globalsign.com/scripts/timstamp.dll
SET pwd=12345

"%stool%" sign /f %pfx% /p %pwd% /tr %ntp% /td SHA256 %1
1
David 1 Juli 2020, 19:23

1 menjawab

Jawaban Terbaik

Konfigurasikan perintah alat tanda Anda hanya sebagai $p.

Lalu di .iss Anda, setel SignTool direktif sebagai berikut (dengan asumsi perintah alat tanda bernama custom), dengan menggunakan SourcePath variabel praprosesor yang telah ditentukan.

[Setup]
SignTool=custom {#SourcePath}\code_sign\sign.bat $f
1
Martin Prikryl 2 Juli 2020, 07:13