Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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>