Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Calcula as somas de verificação do conteúdo de um arquivo ou conjunto de arquivos.
Essa tarefa foi adicionada no 15.8, mas requer uma solução alternativa a ser usada para as versões do MSBuild inferiores a 16.0.
Parâmetros de tarefa
A tabela a seguir descreve os parâmetros da tarefa GetFileHash.
| Parâmetro | Descrição |
|---|---|
Files |
Parâmetro ITaskItem[] obrigatório.Os arquivos destinados a sofrer hashing. |
Items |
Parâmetro de saída ITaskItem[].A entrada Files com metadados adicionais definidos como o hash do arquivo. |
Hash |
Parâmetro de saída String.O hash do arquivo. Essa saída é definida somente se exatamente um item foi passado. |
Algorithm |
Parâmetro String opcional.O algoritmo. Valores permitidos: SHA256, SHA384, SHA512. Padrão = SHA256. |
MetadataName |
Parâmetro String opcional.O nome de metadados em que o hash é armazenado em cada item. Assume o padrão de FileHash. |
HashEncoding |
Parâmetro String opcional.A codificação usada para hashes gerados. Assume o padrão de hex. Valores permitidos = hex, base64. |
Exemplo
O exemplo a seguir usa a tarefa GetFileHash para determinar e imprimir a soma de verificação dos FilesToHash itens.
<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>
Com um único arquivo, você pode usar o parâmetro de saída Hash. O projeto de exemplo a seguir é nomeado hash-example.proj e calcula um hash para si mesmo:
<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>