compito SignFile in MSBuild: Possiamo renderlo più veloce?
Domanda
Ho compito MSBuild come questo per firmare tutti i moduli di uscita del nostro progetto.
<SignFile Condition="Exists('$(OutputPath)\%(FilesToSign.identity)')"
CertificateThumbprint="$(THUMBPRINT)"
SigningTarget="$(OutputPath)\%(FilesToSign.identity)"
TimestampUrl="http://timestamp.verisign.com/scripts/timestamp.dll" />
Ci vuole un po 'di tempo (10 minuti o più) quando ho molti file. E 'possibile eseguire roba in parallelo o in altri modi accelerarlo. (Sto cercando di firmare più di 100 file ..)
Soluzione
Un altro modo per accelerare la firma è quella di rimuovere il parametro TimeStampUrl. Esso non può essere abbastanza buono per build di rilascio (per non avere un timestamp sulla firma), ma è abbastanza buono per una build di sviluppo.
E si accelera il processo di firma con il 80-90%.
Altri suggerimenti
L'unico modo per farlo costruire in parallelo con MsBuild è quello di avere diverse istanze di msbuild, così diversi file di progetto, io non credo che sia consigliato qui. Non si può fare attività o obiettivo in paralleli, ma si può costruire progetti in parallelo (ma è possibile creare diversi file di progetto con un solo obiettivo in ogni). Si può avere la precisione qui: Come eseguire compiti in parallelo in MSBuild .
Inoltre, penso che si sarà limitato dalla vostra velocità di accesso al disco e non dalla vostra memoria.
Non so il SignFile compito abbastanza per dare consigli su come ottimizzarlo, però, mi dispiace.