Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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>