Tarea GetFileHash
Calcula las sumas de comprobación del contenido de un archivo o conjunto de archivos.
Esta tarea se agregó en la versión 15.8, pero requiere una solución alternativa para usarla en versiones de MSBuild anteriores a la 16.0.
Parámetros de tareas
En la siguiente tabla se describen los parámetros de la tarea GetFileHash
.
Parámetro | Descripción |
---|---|
Files |
Parámetro ITaskItem[] requerido.Archivos a los que se va a aplicar un algoritmo hash. |
Items |
Parámetro de salida ITaskItem[] .Entrada Files con metadatos adicionales establecidos en el hash del archivo. |
Hash |
Parámetro de salida String .Hash del archivo. Esta salida solo se establece si se ha pasado exactamente un elemento. |
Algorithm |
Parámetro String opcional.Algoritmo. Valores permitidos: SHA256 , SHA384 y SHA512 . Valor predeterminado: SHA256 . |
MetadataName |
Parámetro String opcional.Nombre de metadatos donde se almacena el valor hash de cada elemento. Tiene como valor predeterminado FileHash . |
HashEncoding |
Parámetro String opcional.Codificación que se va a usar para generar los códigos hash. Tiene como valor predeterminado hex . Valores permitidos: hex y base64 . |
Ejemplo
En el ejemplo siguiente se usa la tarea GetFileHash
para determinar e imprimir la suma de comprobación de los elementos 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>
Con un solo archivo, puede usar el parámetro de salida Hash
. El siguiente proyecto de ejemplo se denomina hash-example.proj
y calcula un hash para sí mismo:
<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>