dotnet / sign

Code Signing CLI tool supporting Authenticode, NuGet, VSIX, and ClickOnce
MIT License
481 stars 90 forks source link

Attempting to use a file list with trusted-signing returns error #768

Open nicktf01 opened 3 weeks ago

nicktf01 commented 3 weeks ago

I'm trying to use a filelist to skip when signing the contents of a directory using trusted-signing

Repro steps

The following command is being executed from the directory containing the target files for signing. If I remove "-fl filelist.txt" and substitute "*.exe" the command completes successfully

"{path}\sign.exe code trusted-signing -tse "{path to endpoint}" -tsa "{trusted-Signing-Account}" -tscp {Cert Profile} -b {WorkingDir} -fl filelist.txt -v debug

Content of filelist.txt

**/*.exe
!**/Don'tSignMe.exe

Expected behavior To sign all *.exe files in current working directory with one exclusion

Actual behavior Program returns "Required argument missing for command: 'trusted-signing'."

If I add a wildcard after the filelist as in the example below, all files will get signed and the filelist will be ignored.

"{path}\sign.exe code trusted-signing -tse "{path to endpoint}" -tsa "{trusted-Signing-Account}" -tscp {Cert Profile} -b {WorkingDir} -fl filelist.txt * -v debug

Additional context Version 0.9.1-beta.24469.1

kauppine commented 3 weeks ago

I also stumbled upon this previously and after looking around in the code, I noticed that the file-list only works with containers (zip, clickonce etc.). As a workaround, you could zip your directory and call "{path}\sign.exe code trusted-signing -tse "{path to endpoint}" -tsa "{trusted-Signing-Account}" -tscp {Cert Profile} -b {WorkingDir} -fl filelist.txt -v debug *.zip

It would be nice if the file-list option worked with plain wildcard as a files to sign argument,

nicktf01 commented 3 weeks ago

Thank you! Yes, I poked around and that was the conclusion I came to as well, but I thought I must be missing something. Seconded for having this work on unzipped files.