GetFileHash görevi

Bir dosyanın veya dosya kümesinin içeriğinin sağlama toplamlarını hesaplar.

Bu görev 15.8'de eklenmiştir, ancak 16.0'ın altındaki MSBuild sürümleri için geçici bir çözüm gerektirir.

Görev parametreleri

Aşağıdaki tabloda görevin parametreleri GetFileHash açıklanmaktadır.

Parametre Tanım
Files Gerekli ITaskItem[] parametresi.

Karma oluşturulacak dosyalar.
Items ITaskItem[] output parametresi.

Files Ek meta verilerin dosya karması olarak ayarlandığı giriş.
Hash String output parametresi.

Dosyanın karması. Bu çıkış yalnızca tam olarak bir öğe geçirildiyse ayarlanır.
Algorithm İsteğe bağlı String parametre.

Algoritma. İzin verilen değerler: SHA256, SHA384, SHA512. Varsayılan = SHA256.
MetadataName İsteğe bağlı String parametre.

Karmanın her öğede depolandığı meta veri adı. varsayılan değeridir FileHash.
HashEncoding İsteğe bağlı String parametre.

Oluşturulan karmalar için kullanılacak kodlama. varsayılan değeridir hex. İzin verilen değerler = hex, base64.

Örnek

Aşağıdaki örnek, öğelerin sağlama FilesToHash toplamını GetFileHash belirlemek ve yazdırmak için görevini kullanır.

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

Tek bir dosyayla çıkış parametresini Hash kullanabilirsiniz. Aşağıdaki örnek proje adlandırılmıştır hash-example.proj ve kendisi için bir karma hesaplar:

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

Ayrıca bkz.