GetFileHash task
Computes checksums of the contents of a file or set of files.
This task was added in 15.8, but requires a workaround to use for MSBuild versions below 16.0.
Task parameters
The following table describes the parameters of the GetFileHash
task.
Parameter | Description |
---|---|
Files |
Required ITaskItem[] parameter.The files to be hashed. |
Items |
ITaskItem[] output parameter.The Files input with additional metadata set to the file hash. |
Hash |
String output parameter.The hash of the file. This output is only set if there was exactly one item passed in. |
Algorithm |
Optional String parameter.The algorithm. Allowed values: SHA256 , SHA384 , SHA512 . Default = SHA256 . |
MetadataName |
Optional String parameter.The metadata name where the hash is stored in each item. Defaults to FileHash . |
HashEncoding |
Optional String parameter.The encoding to use for generated hashes. Defaults to hex . Allowed values = hex , base64 . |
Example
The following example uses the GetFileHash
task to determine and print the checksum of the FilesToHash
items.
<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>
With a single file, you can use the Hash
output parameter. The following example project is named hash-example.proj
and computes a hash for itself:
<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>
See also
Feedback
https://aka.ms/ContentUserFeedback.
În curând: Pe parcursul anului 2024, vom elimina treptat Probleme legate de GitHub ca mecanism de feedback pentru conținut și îl vom înlocui cu un nou sistem de feedback. Pentru mai multe informații, consultați:Trimiteți și vizualizați feedback pentru