Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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>