VerifyFileHash – úloha
Ověří, že soubor odpovídá očekávané hodnotě hash souboru. Pokud se hodnota hash neshoduje, úloha selže.
Tato úloha byla přidána ve verzi 15.8, ale vyžaduje alternativní řešení pro použití pro verze MSBuild nižší než 16.0.
Parametry úkolu
Následující tabulka popisuje parametry VerifyFileHash
úlohy.
Parametr | Popis |
---|---|
File |
Požadovaný parametr String .Soubor, který má být hashován a ověřen. |
Hash |
Požadovaný parametr String .Očekávaná hodnota hash souboru. |
Algorithm |
Volitelný String parametr.Algoritmus. Povolené hodnoty: SHA256 , SHA384 , SHA512 . Výchozí = SHA256 . |
HashEncoding |
Volitelný String parametr.Kódování, které se má použít pro vygenerované hodnoty hash. Výchozí hodnota hex je . Povolené hodnoty = hex , base64 . |
Příklad
Následující příklad používá VerifyFileHash
úlohu k ověření vlastního kontrolního součtu.
<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>
Pokud v MSBuildu 16.5 a novějším nechcete, aby sestavení selhalo, pokud se hodnota hash neshoduje, například pokud používáte porovnání hodnot hash jako podmínku pro tok řízení, můžete upozornění downgradovat na zprávu pomocí následujícího kódu:
<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>