Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вычисляет контрольные суммы содержимого файла или набора файлов.
Эта задача была добавлена в версии 15.8, но требует обходное решение для версий MSBuild до 16.0.
Параметры задачи
В следующей таблице приводятся параметры задачи GetFileHash.
| Параметр | Описание |
|---|---|
Files |
Обязательный параметр ITaskItem[] .Файлы, которые нужно хэшировать. |
Items |
Выходной параметр ITaskItem[].Входные данные Files с дополнительными метаданными, заданные для хэша файла. |
Hash |
Выходной параметр String.Хэш файла. Эти выходные данные задаются только в том случае, если передан только один элемент. |
Algorithm |
Необязательный параметр String.Алгоритм. Допустимые значения: SHA256, SHA384, SHA512. По умолчанию = SHA256. |
MetadataName |
Необязательный параметр String.Имя метаданных, где хранится хэш в каждом элементе. По умолчанию — FileHash. |
HashEncoding |
Необязательный параметр String.Кодировка, используемая для созданных хэшей. По умолчанию — hex. Допустимые значения = hex, base64. |
Пример
В следующем примере используется задача GetFileHash для определения и вывода контрольной суммы элементов FilesToHash.
<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>
С одним файлом можно использовать выходной Hash параметр. Следующий пример проекта называется hash-example.proj и вычисляет хэш для себя:
<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>