Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse 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>