Attività SignFile
Firma il file specificato utilizzando il certificato specificato. SignFile è destinato solo alla firma dei file ClickOnce. Si tratta di un wrapper per lo strumento signtool.exe
e non è un'attività di firma per utilizzo generico.
Parametri
Nella tabella seguente vengono descritti i parametri dell'attività SignFile
.
Si noti che i certificati SHA-256 sono consentiti solo nei computer con .NET 4.5 e versioni successive.
Avvertimento
A partire da Visual Studio 2013 Update 3, questa attività ha una nuova firma che consente di specificare la versione del framework di destinazione per il file. È consigliabile usare la nuova firma laddove possibile, perché il processo di MSBuild usa hash SHA-256 solo quando il framework di destinazione è .NET 4.5 o versione successiva. Se il framework di destinazione è .NET 4.0 o versione successiva, l'hash SHA-256 non verrà usato.
Parametro | Descrizione |
---|---|
CertificateThumbprint |
Parametro String obbligatorio.Specifica il certificato da utilizzare per la firma. Questo certificato deve trovarsi nell'archivio personale dell'utente corrente. |
SigningTarget |
Parametro ITaskItem obbligatorio. Specifica i file da firmare con il certificato, di tipo .exe o .dll. |
TimestampUrl |
Parametro String facoltativo.Specifica l'URL di un server di timestamp. |
TargetFrameworkVersion |
Versione di .NET Framework usata per la destinazione. |
Osservazioni
Oltre ai parametri elencati in precedenza, questa attività eredita i parametri dalla classe Task. Per un elenco di questi parametri aggiuntivi e delle relative descrizioni, vedere classe base task.
SignFile richiede l'installazione di Visual Studio o windows 8.1 SDK per trovare lo strumento signtool.exe
nel percorso. Non può essere usato negli scenari CI/CD in cui sono installati solo gli strumenti di compilazione.
Esempio
Nell'esempio seguente viene utilizzata l'attività SignFile
per firmare i file specificati nella raccolta di elementi FilesToSign
con il certificato specificato dalla proprietà CertificateThumbprint
.
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<FileToSign Include="File.exe" />
</ItemGroup>
<PropertyGroup>
<Certificate>Cert.cer</Certificate>
</PropertyGroup>
<Target Name="Sign">
<SignFile
CertificateThumbprint="$(CERTIFICATE_THUMBPRINT)"
SigningTarget="@(FileToSign)"
TargetFrameworkVersion="v4.5" />
</Target>
</Project>
Nota
L'identificazione personale del certificato è l'hash SHA-1 del certificato. Nell'esempio seguente si presuppone una variabile di ambiente CERTIFICATE_THUMBPRINT
che contiene l'identificazione personale. Per altre informazioni, vedere Ottenere l'hash SHA-1 di un certificato CA radice attendibile. Se si copia e incolla l'identificazione personale dai dettagli del certificato, assicurarsi di non includere il carattere invisibile aggiuntivo (3F), che potrebbe impedire SignFile
di trovare il certificato.