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>