Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Verifica se um arquivo corresponde ao hash do arquivo esperado. Se o hash não corresponder, a tarefa falhará.
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 VerifyFileHash.
| Parâmetro | Descrição |
|---|---|
File |
Parâmetro String obrigatório.Os arquivos que terão hash e validação. |
Hash |
Parâmetro String obrigatório.O hash esperado do arquivo. |
Algorithm |
Parâmetro String opcional.O algoritmo. Valores permitidos: SHA256, SHA384, SHA512. Padrão = SHA256. |
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 VerifyFileHash para verificar sua própria soma de verificação.
<Project>
<Target Name="VerifyHash">
<GetFileHash Files="$(MSBuildProjectFullPath)">
<Output
TaskParameter="Items"
ItemName="FilesWithHashes" />
</GetFileHash>
<Message Importance="High"
Text="@(FilesWithHashes->'%(Identity): %(FileHash)')" />
<VerifyFileHash File="$(MSBuildThisFileFullPath)"
Hash="$(ExpectedHash)" />
</Target>
</Project>
No MSBuild 16.5 e posterior, se você não quiser que o build falhe quando o hash não corresponder, como se estivesse usando a comparação de hash como uma condição para o fluxo de controle, faça downgrade do aviso para uma mensagem usando o seguinte código:
<PropertyGroup>
<MSBuildWarningsAsMessages>$(MSBuildWarningsAsMessages);MSB3952</MSBuildWarningsAsMessages>
</PropertyGroup>
<Target Name="DemoVerifyCheck">
<VerifyFileHash File="$(MSBuildThisFileFullPath)"
Hash="1"
ContinueOnError="WarnAndContinue" />
<PropertyGroup>
<HashMatched>$(MSBuildLastTaskResult)</HashMatched>
</PropertyGroup>
<Message Condition=" '$(HashMatched)' != 'true'"
Text="The hash didn't match" />
<Message Condition=" '$(HashMatched)' == 'true'"
Text="The hash did match" />
</Target>