SignFile タスクSignFile Task

指定された証明書を使用して、指定されたファイルに署名します。Signs the specified file using the specified certificate.

パラメーターParameters

SignFile タスクのパラメーターの説明を次の表に示します。The following table describes the parameters of the SignFile task.

SHA-256 の証明書は .NET 4.5 以上が実行されているコンピューター上でのみ許可されることに注意してください。Note that SHA-256 certificates are allowed only on machines that have .NET 4.5 and higher.

警告

Visual Studio 2013 Update 3 以降、このタスクには、ファイルのターゲット フレームワークのバージョンを指定できる新しい署名が用意されています。Starting in Visual Studio 2013 Update 3, this task has a new signature that allows you to specify the target framework version for the file. ターゲット フレームワークが .NET 4.5 以上の場合のみ MSBuild プロセスで SHA-256 ハッシュが使用されるため、可能な限り新しい署名を使用することをお勧めします。You are encouraged to use the new signature wherever possible, because the MSBuild process uses SHA-256 hashes only when the target framework is .NET 4.5 or higher. ターゲット フレームワークが .NET 4.0 以下である場合、SHA-256 ハッシュは使用されません。If the target framework is .NET 4.0 or below, the SHA-256 hash will not be used.

パラメーターParameter 説明Description
CertificateThumbprint 必須の String 型のパラメーターです。Required String parameter.

署名に使用する証明書を指定します。Specifies the certificate to use for signing. この証明書は、現在のユーザーの個人ストアにある必要があります。This certificate must be in the current user's personal store.
SigningTarget 必須の ITaskItem 型のパラメーターです。Required ITaskItem parameter.

証明書で署名するファイルを指定します。Specifies the files to sign with the certificate.
TimestampUrl 省略可能な String 型のパラメーターです。Optional String parameter.

タイム スタンプ サーバーの URL を指定します。Specifies the URL of a time stamping server.
TargetFrameworkVersion ターゲットに使用される .NET Framework のバージョンです。The version of the .NET Framework that is used for the target.

コメントRemarks

上記のパラメーターに加えて、このタスクは Task クラスからパラメーターを継承します。In addition to the parameters listed above, this task inherits parameters from the Task class. これらの追加パラメーターのリストとその説明については、「Task Base Class」を参照してください。For a list of these additional parameters and their descriptions, see Task Base Class.

Example

次に、SignFile タスクを使用して、FilesToSign アイテム コレクションで指定したファイルに、Certificate プロパティで指定された証明書で署名する例を示します。The following example uses the SignFile task to sign the files specified in the FilesToSign item collection with the certificate specified by the Certificate property.

<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 ハッシュです。The certificate thumbprint is the SHA-1 hash of the certificate. 詳細については、「Obtain the SHA-1 Hash of a Trusted Root CA Certificate」 (信頼されたルート CA 証明書の SHA-1 ハッシュの取得) を参照してください。For more information, see Obtain the SHA-1 Hash of a Trusted Root CA Certificate.

Example

次に、Exec タスクを使用して、FilesToSign アイテム コレクションで指定したファイルに、Certificate プロパティで指定された証明書で署名する例を示します。The following example uses the Exec task to sign the files specified in the FilesToSign item collection with the certificate specified by the Certificate property. これを使用すると、ビルド処理中に Windows インストーラー ファイルに署名できます。You can use this to sign Windows Installer files during the build process.

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">  
    <ItemGroup>  
        <FileToSign Include="File.msi" />  
    </ItemGroup>  
    <PropertyGroup>  
        <Certificate>Cert.cer</Certificate>  
    </PropertyGroup>  
    <Target Name="Sign">  
        <Exec Command="signtool.exe sign /f CertFile /p Password "@(FileToSign)" "/>  
        <SignFile  
            CertificateThumbprint="$(CertificateThumbprint)"  
            SigningTarget="@(FileToSign)"   
            TargetFrameworkVersion="v4.0" />  
    </Target>  
</Project>  

関連項目See Also

Task Reference (タスク リファレンス) Task Reference
タスクTasks