Partager via


GetFileHash, tâche

Calcule les sommes de contrôle du contenu d’un fichier ou d’un ensemble de fichiers.

Cette tâche a été ajoutée dans la version 15.8, mais nécessite une solution de contournement pour une utilisation avec les versions de MSBuild antérieures à 16.0.

Paramètres de tâche

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

Paramètre Description
Files Paramètre ITaskItem[] obligatoire.

Fichiers à hacher.
Items Paramètre de sortie de ITaskItem[].

Entrée Files avec des métadonnées supplémentaires définies sur le hachage du fichier.
Hash Paramètre de sortie String.

Hachage du fichier. Cette sortie est définie seulement si un seul élément a été passé en entrée.
Algorithm Paramètre String facultatif.

Algorithme. Valeurs autorisées : SHA256, SHA384, SHA512. Valeur par défaut = SHA256.
MetadataName Paramètre String facultatif.

Nom des métadonnées où le hachage est stocké dans chaque élément. La valeur par défaut est FileHash.
HashEncoding Paramètre String facultatif.

Encodage à utiliser pour les hachages générés. La valeur par défaut est hex. Valeurs autorisées = hex, base64.

Exemple

L’exemple suivant utilise la tâche GetFileHash pour déterminer et afficher la somme de contrôle des éléments FilesToHash.

<Project>
  <ItemGroup>
    <FilesToHash Include="$(MSBuildThisFileDirectory)\*" />
  </ItemGroup>
  <Target Name="GetHash">
    <GetFileHash Files="@(FilesToHash)">
      <Output
          TaskParameter="Items"
          ItemName="FilesWithHashes" />
    </GetFileHash>

    <Message Importance="High"
             Text="@(FilesWithHashes->'%(Identity): %(FileHash)')" />
  </Target>
</Project>

Avec un seul fichier, vous pouvez utiliser le paramètre de sortie Hash. L’exemple du projet suivant est nommé hash-example.proj et calcule un hachage pour lui-même :

<Project>
    <ItemGroup>
      <FileToHash Include="$(MSBuildThisFileDirectory)hash-example.proj" />
    </ItemGroup>
    <Target Name="GetHash">
      <GetFileHash Files="@(FileToHash)">
        <Output
            TaskParameter="Hash"
            ItemName="FileHash" />
      </GetFileHash>
  
      <Message Importance="High"
               Text="File: @(FileToHash) Hash: @(FileHash)" />
    </Target>
  </Project>

Voir aussi