Share via


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>

Consulte también