GetFileHash – úloha

Vypočítá kontrolní součty obsahu souboru nebo sady souborů.

Tato úloha byla přidána ve verzi 15.8, ale vyžaduje alternativní řešení pro použití pro verze MSBuild nižší než 16.0.

Parametry úkolu

Následující tabulka popisuje parametry GetFileHash úlohy.

Parametr Popis
Files Požadovaný parametr ITaskItem[].

Soubory, které se mají zatřiďovat.
Items ITaskItem[] výstupní parametr.

Vstup Files s dalšími metadaty nastavenými na hodnotu hash souboru.
Hash String výstupní parametr.

Hodnota hash souboru. Tento výstup je nastaven pouze v případě, že byla právě jedna položka předána.
Algorithm Volitelný String parametr.

Algoritmus. Povolené hodnoty: SHA256, SHA384, SHA512. Výchozí = SHA256.
MetadataName Volitelný String parametr.

Název metadat, ve kterém je hodnota hash uložená v každé položce. Výchozí hodnota FileHashje .
HashEncoding Volitelný String parametr.

Kódování, které se má použít pro vygenerované hodnoty hash. Výchozí hodnota hexje . Povolené hodnoty = hex, base64.

Příklad

Následující příklad používá GetFileHash úlohu k určení a vytištění kontrolního součtu FilesToHash položek.

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

S jedním souborem můžete použít Hash výstupní parametr. Následující ukázkový projekt má název hash-example.proj a vypočítá hodnotu hash pro sebe:

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

Viz také