Condividi tramite


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.

Vedere anche