GetFileHash görevi
Bir dosyanın veya dosya kümesinin içeriğinin sağlama toplamlarını hesaplar.
Bu görev 15.8'de eklenmiştir, ancak 16.0'ın altındaki MSBuild sürümleri için geçici bir çözüm gerektirir.
Görev parametreleri
Aşağıdaki tabloda görevin parametreleri GetFileHash
açıklanmaktadır.
Parametre | Tanım |
---|---|
Files |
Gerekli ITaskItem[] parametresi.Karma oluşturulacak dosyalar. |
Items |
ITaskItem[] output parametresi.Files Ek meta verilerin dosya karması olarak ayarlandığı giriş. |
Hash |
String output parametresi.Dosyanın karması. Bu çıkış yalnızca tam olarak bir öğe geçirildiyse ayarlanır. |
Algorithm |
İsteğe bağlı String parametre.Algoritma. İzin verilen değerler: SHA256 , SHA384 , SHA512 . Varsayılan = SHA256 . |
MetadataName |
İsteğe bağlı String parametre.Karmanın her öğede depolandığı meta veri adı. varsayılan değeridir FileHash . |
HashEncoding |
İsteğe bağlı String parametre.Oluşturulan karmalar için kullanılacak kodlama. varsayılan değeridir hex . İzin verilen değerler = hex , base64 . |
Örnek
Aşağıdaki örnek, öğelerin sağlama FilesToHash
toplamını GetFileHash
belirlemek ve yazdırmak için görevini kullanır.
<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>
Tek bir dosyayla çıkış parametresini Hash
kullanabilirsiniz. Aşağıdaki örnek proje adlandırılmıştır hash-example.proj
ve kendisi için bir karma hesaplar:
<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>