Share via


GetFileHash 작업

파일 내용 또는 파일 집합의 체크섬을 계산합니다.

이 작업은 15.8에 추가되었지만 16.0 미만의 MSBuild 버전에 사용하려면 해결 방법이 필요합니다.

작업 매개 변수

다음 표에서는 GetFileHash 작업의 매개 변수에 대해 설명합니다.

매개 변수 Description
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>

참고 항목