GetFileHash, zadanie

Oblicza sumy kontrolne zawartości pliku lub zestawu plików.

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

Parametr Opis
Files Wymagany parametr interfejsu ITaskItem[].

Pliki, które mają zostać skrócone.
Items ITaskItem[] parametr wyjściowy.

Dane Files wejściowe z dodatkowymi metadanymi ustawionymi na skrót pliku.
Hash String parametr wyjściowy.

Skrót pliku. Te dane wyjściowe są ustawiane tylko wtedy, gdy przekazano dokładnie jeden element.
Algorithm Opcjonalny String parametr.

Algorytm. Dozwolone wartości: SHA256, SHA384, SHA512. Wartość domyślna = SHA256.
MetadataName Opcjonalny String parametr.

Nazwa metadanych, w której skrót jest przechowywany w każdym elemencie. Wartość domyślna to FileHash.
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 GetFileHash zadania do określenia i wyświetlenia sumy kontrolnej FilesToHash elementów.

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

W przypadku pojedynczego pliku można użyć parametru wyjściowego Hash . Poniższy przykładowy projekt ma nazwę hash-example.proj i oblicza skrót dla siebie:

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

Zobacz też