GetFileHash 工作

計算檔案或一組檔案內容的總和檢查碼。

這個工作已在 15.8 中新增,但是需要因應措施以用於 16.0 以下的 MSBuild 版本。

工作參數

下表說明 GetFileHash 工作的參數。

參數 描述
Files 必要的 ITaskItem[] 參數。

要進行雜湊的檔案。
Items ITaskItem[] 輸出參數。

Files 輸入含設定至檔案雜湊的其他中繼資料。
Hash String 輸出參數。

檔案的雜湊。 只有一個傳入項目時,才會設定此輸出。
Algorithm 選擇性的 String 參數。

演算法。 允許值:SHA256SHA384SHA512。 預設值 = SHA256
MetadataName 選擇性的 String 參數。

中繼資料名稱,雜湊儲存在每個項目。 預設為 FileHash
HashEncoding 選擇性的 String 參數。

要用於產生雜湊的編碼。 預設為 hex。 允許值:hexbase64

範例

下列範例會使用 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>

另請參閱