VerifyFileHash, zadanie
Sprawdza, czy plik jest zgodny z oczekiwanym skrótem pliku. Jeśli skrót nie jest zgodny, zadanie zakończy się niepowodzeniem.
To zadanie zostało dodane w wersji 15.8, ale wymaga obejścia dla wersji MSBuild poniżej wersji 16.0.
Parametry zadania
W poniższej tabeli opisano parametry VerifyFileHash
zadania.
Parametr | Opis |
---|---|
File |
Wymagany parametr interfejsu String .Plik, który ma zostać skrócony i zweryfikowany. |
Hash |
Wymagany parametr interfejsu String .Oczekiwany skrót pliku. |
Algorithm |
Opcjonalny String parametr.Algorytm. Dozwolone wartości: SHA256 , SHA384 , SHA512 . Wartość domyślna = SHA256 . |
HashEncoding |
Opcjonalny String parametr.Kodowanie używane do generowania skrótów. Wartość domyślna to hex . Dozwolone wartości = hex , base64 . |
Przykład
W poniższym przykładzie użyto zadania do zweryfikowania VerifyFileHash
własnej sumy kontrolnej.
<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>
W programie MSBuild 16.5 lub nowszym, jeśli kompilacja nie powiedzie się, jeśli skrót nie jest zgodny, na przykład jeśli używasz porównania skrótów jako warunku przepływu sterowania, możesz obniżyć poziom ostrzeżenia do komunikatu przy użyciu następującego kodu:
<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>