SignFile (tâche)

Signe le fichier spécifié à l'aide du certificat spécifié. SignFile est destiné uniquement à la signature de fichiers ClickOnce. Il s’agit d’un wrapper pour l’outil signtool.exe ; ce n’est pas une tâche de signature à usage général.

Paramètres

Le tableau ci-dessous décrit les paramètres de la tâche SignFile .

Notez que les certificats SHA-256 ne sont autorisés que sur les ordinateurs où est installé le .NET 4.5 et version ultérieure.

Avertissement

Depuis Visual Studio 2013 Update 3, cette tâche possède une nouvelle signature qui permet de spécifier la version cible de .NET Framework pour le fichier. Vous êtes encouragé à utiliser la nouvelle signature dans la mesure du possible, car le processus MSBuild n'utilise les hachages SHA-256 que lorsque la version cible du .NET Framework est .NET 4.5 ou version ultérieure. Si la version cible du .NET Framework est .NET 4.0 ou version antérieure, le hachage SHA-256 ne sera pas utilisé.

Paramètre Description
CertificateThumbprint Paramètre String requis.

Spécifie le certificat à utiliser pour la signature. Ce certificat doit se trouver dans le magasin personnel de l'utilisateur actuel.
SigningTarget Paramètre ITaskItem requis.

Spécifie les fichiers à signer avec le certificat, de type .exe ou .dll.
TimestampUrl Paramètre String facultatif.

Spécifie l'URL d'un serveur d'horodatage.
TargetFrameworkVersion Version du .NET Framework utilisée pour la cible.

Remarques

En plus des paramètres énumérés ci-dessus, cette tâche hérite des paramètres de la classe Task. Pour obtenir la liste de ces paramètres supplémentaires et leurs descriptions, consultez Classe de base de tâche.

SignFile nécessite l’installation de Visual Studio ou d’un SDK Windows 8.1, afin de trouver l’outil signtool.exe sur le chemin d’accès. Il ne peut pas être utilisé dans les scénarios CI/CD où seuls les outils de génération sont installés.

Exemple

L'exemple suivant utilise la tâche SignFile pour signer les fichiers spécifiés dans la collection d'éléments FilesToSign avec le certificat spécifié par la propriété 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="$(CertificateThumbprint)"
            SigningTarget="@(FileToSign)"
            TargetFrameworkVersion="v4.5" />
    </Target>
</Project>

Notes

L'empreinte de certificat correspond au hachage SHA-1 du certificat. Pour plus d’informations, voir Obtenir le hachage SHA-1 d’un certificat d’autorité de certification racine de confiance. Si vous copiez et collez l’empreinte numérique à partir des détails du certificat, veillez à ne pas inclure le caractère invisible (3F) supplémentaire, ce qui risque d’empêcher SignFile de trouver le certificat.

Voir aussi