SignFile 작업

지정된 인증서를 사용하여 지정한 파일에 서명을 합니다. SignFile은 ClickOnce 파일에 서명하는 데만 사용됩니다. signtool.exe 도구의 래퍼이며 범용 서명 작업이 아닙니다.

매개 변수

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

SHA-256 인증서는 .NET 4.5 이상이 설치된 컴퓨터에서만 사용할 수 있습니다.

Warning

Visual Studio 2013 업데이트 3부터는 이 작업에 새 시그니처가 포함되어 파일의 대상 프레임워크 버전을 지정할 수 있습니다. MSBuild 프로세스에서는 대상 프레임워크가 .NET 4.5 이상일 때만 SHA-256 해시를 사용하므로 가능하면 항상 새 시그니처를 사용하는 것이 좋습니다. 대상 프레임워크가 .NET 4.0 이하이면 SHA-256 해시는 사용되지 않습니다.

매개 변수 Description
CertificateThumbprint 필수 String 매개 변수입니다.

서명에 사용할 인증서를 지정합니다. 이 인증서는 현재 사용자의 개인 저장소에 있어야 합니다.
SigningTarget 필수 ITaskItem 매개 변수입니다.

.exe 또는 .dll 형식의 인증서를 사용하여 서명할 파일을 지정합니다.
TimestampUrl 선택적 String 매개 변수입니다.

타임스탬프 서버의 URL을 지정합니다.
TargetFrameworkVersion 대상에 대해 사용되는 .NET Framework 버전입니다.

설명

이 작업은 위에 나와 있는 매개 변수 외에 Task 클래스의 매개 변수도 상속합니다. 이러한 추가 매개 변수 및 해당 설명이 포함된 목록은 Task 기본 클래스를 참조하세요.

경로에서 signtool.exe 도구를 찾기 위해 SignFile을 사용하려면 Visual Studio 또는 Windows 8.1 SDK를 설치해야 합니다. 빌드 도구만 설치된 CI/CD 시나리오에서는 사용할 수 없습니다.

예시

다음 예제에서는 SignFile 작업을 통해 FilesToSign 속성으로 지정된 인증서를 사용하여 CertificateThumbprint 항목 컬렉션에 지정된 파일에 서명을 합니다.

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>
        <FileToSign Include="File.exe" />
    </ItemGroup>
    <PropertyGroup>
        <Certificate>Cert.cer</Certificate>
    </PropertyGroup>
    <Target Name="Sign">
        <SignFile
            CertificateThumbprint="$(CertificateThumbprint)"
            SigningTarget="@(FileToSign)"
            TargetFrameworkVersion="v4.5" />
    </Target>
</Project>

참고 항목

인증서 지문은 인증서의 SHA-1 해시입니다. 자세한 내용은 신뢰할 수 있는 루트 CA 인증서의 SHA-1 해시 얻기를 참조하세요. 인증서 세부 정보에서 지문을 복사하여 붙여넣는 경우 추가(3F) 보이지 않는 문자를 포함하지 마세요. 이로 인해 SignFile이 인증서를 찾지 못할 수 있습니다.

참고 항목