Bagikan melalui


Tugas GetFileHash

Menghitung checksum konten file atau sekumpulan file.

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 GetFileHash.

Parameter Deskripsi
Files Parameter ITaskItem[] wajib.

File yang akan di-hash.
Items ITaskItemParameter output [].

Input Files dengan metadata tambahan diatur ke hash file.
Hash StringParameter output .

Hash file. Output ini hanya diatur jika ada tepat satu item yang diteruskan.
Algorithm Parameter String opsional.

Algoritma. Nilai yang diizinkan: SHA256, SHA384, dan SHA512. Default = SHA256.
MetadataName Parameter String opsional.

Nama metadata tempat hash disimpan di setiap item. Default ke FileHash.
HashEncoding Parameter String opsional.

Pengodean yang digunakan untuk hash yang dihasilkan. Default ke hex. Nilai yang diizinkan = hex, base64.

Contoh

Contoh berikut menggunakan tugas GetFileHash untuk menentukan dan mencetak checksum item FilesToHash.

<Project>
  <ItemGroup>
    <FilesToHash Include="$(MSBuildThisFileDirectory)\*" />
  </ItemGroup>
  <Target Name="GetHash">
    <GetFileHash Files="@(FilesToHash)">
      <Output
          TaskParameter="Items"
          ItemName="FilesWithHashes" />
    </GetFileHash>

    <Message Importance="High"
             Text="@(FilesWithHashes->'%(Identity): %(FileHash)')" />
  </Target>
</Project>

Dengan satu file, Anda dapat menggunakan Hash parameter output. Contoh proyek berikut diberi nama hash-example.proj dan menghitung hash untuk dirinya sendiri:

<Project>
    <ItemGroup>
      <FileToHash Include="$(MSBuildThisFileDirectory)hash-example.proj" />
    </ItemGroup>
    <Target Name="GetHash">
      <GetFileHash Files="@(FileToHash)">
        <Output
            TaskParameter="Hash"
            ItemName="FileHash" />
      </GetFileHash>
  
      <Message Importance="High"
               Text="File: @(FileToHash) Hash: @(FileHash)" />
    </Target>
  </Project>

Baca juga