GetFileHash-Aufgabe

Berechnet Prüfsummen der Inhalte einer Datei oder mehrerer Dateien.

Diese Aufgabe wurde in Version 15.8 hinzugefügt, für die Verwendung für MSBuild-Versionen unter Version 16.0 ist jedoch ein Workaround erforderlich.

Aufgabenparameter

In der folgenden Tabelle werden die Parameter der GetFileHash -Aufgabe beschrieben.

Parameter Beschreibung
Files Erforderlicher ITaskItem[]-Parameter.

Die Dateien, die gehasht werden sollen.
Items ITaskItem[]-Ausgabeparameter.

Die Files-Eingabe mit zusätzlichen Metadaten für den Dateihash.
Hash String-Ausgabeparameter.

Der Hash der Datei. Diese Ausgabe wird nur festgelegt, wenn genau ein Element übergeben wurde.
Algorithm Optionaler String-Parameter.

Der Algorithmus. Zulässige Werte: SHA256, SHA384 und SHA512. Standard = SHA256.
MetadataName Optionaler String-Parameter.

Der Name der Metadaten, in denen der Hash in jedem Element gespeichert ist. Wird standardmäßig auf FileHash festgelegt.
HashEncoding Optionaler String-Parameter.

Die Codierung für die generierten Hashes. Wird standardmäßig auf hex festgelegt. Zulässige Werte: hex und base64.

Beispiel

Im folgenden Beispiel wird die Aufgabe GetFileHash verwendet, um die Prüfsumme der FilesToHash-Elemente zu ermitteln und auszugeben.

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

Bei einer einzelnen Datei können Sie den Hash-Ausgabeparameter verwenden. Das folgende Beispielprojekt heißt hash-example.proj und berechnet einen Hash für sich selbst:

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

Siehe auch