Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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>