GetFileHash 工作
計算檔案或一組檔案內容的總和檢查碼。
這個工作已在 15.8 中新增,但是需要因應措施以用於 16.0 以下的 MSBuild 版本。
工作參數
下表說明 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>