VerifyFileHash task
Memverifikasi bahwa file cocok dengan hash file yang diharapkan. Jika hash tidak cocok, tugas gagal.
Tugas ini ditambahkan di 15.8, tetapi memerlukan solusi untuk digunakan untuk versi MSBuild di bawah 16.0.
Parameter tugas
Tabel berikut ini menjelaskan parameter tugas VerifyFileHash
.
Parameter | Deskripsi |
---|---|
File |
Parameter String wajib.File yang akan di-hash dan divalidasi. |
Hash |
Parameter String wajib.Hash file yang diharapkan. |
Algorithm |
Parameter String opsional.Algoritma. Nilai yang diizinkan: SHA256 , SHA384 , dan SHA512 . Default = SHA256 . |
HashEncoding |
Parameter String opsional.Pengodean yang digunakan untuk hash yang dihasilkan. Default ke hex . Nilai yang diizinkan = hex , base64 . |
Contoh
Contoh berikut menggunakan tugas VerifyFileHash
untuk memverifikasi checksum-nya sendiri.
<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>
Pada MSBuild 16.5 dan yang lebih baru, jika Anda tidak ingin build gagal saat hash tidak cocok, seperti jika Anda menggunakan perbandingan hash sebagai kondisi untuk alur kontrol, Anda dapat menurunkan tingkat peringatan ke pesan menggunakan kode berikut:
<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>
Baca juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk