Tarefa VerifyFileHash
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>