Attività GetFileHash
Calcola i checksum del contenuto di un file o di un set di file.
Questa attività è stata aggiunta nella versione 15.8. È tuttavia necessaria una soluzione alternativa per poter usare le versioni di MSBuild precedenti alla versione 16.0.
Parametri dell'attività
Nella tabella che segue vengono descritti i parametri dell'attività GetFileHash
.
Parametro | Descrizione |
---|---|
Files |
Parametro ITaskItem[] obbligatorio.File per i quali generare un hash. |
Items |
Parametro di output ITaskItem[] .Input Files con metadati aggiuntivi impostato sul l'hash del file. |
Hash |
Parametro di output String .Hash del file. Questo output viene impostato solo se è stato passato esattamente un elemento. |
Algorithm |
Parametro String facoltativo.Algoritmo. Valori consentiti: SHA256 , SHA384 , SHA512 . Valore predefinito = SHA256 . |
MetadataName |
Parametro String facoltativo.Nome dei metadati in cui l'hash viene archiviato in ogni elemento. Il valore predefinito è FileHash . |
HashEncoding |
Parametro String facoltativo.Codifica da usare per gli hash generati. Il valore predefinito è hex . Valori consentiti = hex , base64 . |
Esempio
L'esempio seguente usa l'attività GetFileHash
per determinare e stampare il checksum degli elementi 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>
Con un singolo file, è possibile usare il Hash
parametro di output. Il progetto di esempio seguente è denominato hash-example.proj
e calcola un hash per se stesso:
<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>