Condividi tramite


SignFile (attività)

Consente di firmare il file specificato usando il certificato specificato. SignFile è destinato solo alla firma dei file ClickOnce. Si tratta di un wrapper per lo signtool.exe strumento e non è un'attività di firma per utilizzo generico.

Parametri

Nella tabella che segue vengono descritti i parametri dell'attività SignFile.

Notare che i certificati SHA-256 sono consentiti solo in computer con .NET 4.5 e versioni successive.

Avviso

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. L'utente è incoraggiato a usare la nuova firma, ove possibile, perché il processo di MSBuild usa gli 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 precedente, l'hash SHA-256 non verrà usato.

Parametro Descrizione
CertificateThumbprint Parametro String obbligatorio.

Specifica il certificato da usare 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 del server di timestamp.
TargetFrameworkVersion La versione di.NET Framework che viene usata per la destinazione.

Osservazioni:

Oltre ai parametri sopra elencati, quest'attività eredita i parametri dalla classe Task. Per un elenco di tali parametri aggiuntivi e le relative descrizioni, vedere Classe di base Task.

SignFile richiede l'installazione di Visual Studio o di un SDK di Windows 8.1 per trovare lo signtool.exe strumento nel percorso. Non può essere usato negli scenari CI/CD in cui sono installati solo gli strumenti di compilazione.

Esempio

Nell'esempio seguente viene usata 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 contenente l'identificazione CERTIFICATE_THUMBPRINT personale. Per altre informazioni, vedere Ottenere l'hash SHA-1 di un certificato CA radice attendibile. Se si copia e incolla l'identificazione personale presente nei dettagli del certificato, assicurarsi di non includere il carattere invisibile (3F) aggiuntivo, che può impedire a SignFile di trovare il certificato.

Vedi anche