SignFile タスク

指定された証明書を使用して、指定されたファイルに署名します。 SignFile は、ClickOnce ファイルの署名のみを目的としています。 これは signtool.exe ツールのラッパーであり、汎用の署名タスクではありません。

パラメーター

SignFile タスクのパラメーターの説明を次の表に示します。

SHA-256 の証明書は .NET 4.5 以上が実行されているコンピューター上でのみ許可されることに注意してください。

警告

Visual Studio 2013 Update 3 以降、このタスクには、ファイルのターゲット フレームワークのバージョンを指定できる新しい署名が用意されています。 ターゲット フレームワークが .NET 4.5 以上の場合のみ MSBuild プロセスで SHA-256 ハッシュが使用されるため、可能な限り新しい署名を使用することをお勧めします。 ターゲット フレームワークが .NET 4.0 以下である場合、SHA-256 ハッシュは使用されません。

パラメーター 説明
CertificateThumbprint 必須の String 型のパラメーターです。

署名に使用する証明書を指定します。 この証明書は、現在のユーザーの個人ストアにある必要があります。
SigningTarget 必須の ITaskItem 型のパラメーターです。

種類が .exe または .dll の、証明書で署名するファイルを指定します。
TimestampUrl 省略可能な String 型のパラメーターです。

タイム スタンプ サーバーの URL を指定します。
TargetFrameworkVersion ターゲットに使用される .NET Framework のバージョンです。

解説

上記のパラメーターに加えて、このタスクは Task クラスからパラメーターを継承します。 これらの追加パラメーターのリストとその説明については、「Task 基底クラス」を参照してください。

SignFile では、パス上の signtool.exe ツールを見つけるために、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="$(CERTIFICATE_THUMBPRINT)"
            SigningTarget="@(FileToSign)"
            TargetFrameworkVersion="v4.5" />
    </Target>
</Project>

Note

証明書の拇印は、証明書の SHA-1 ハッシュです。 この例では、拇印を含む環境変数 CERTIFICATE_THUMBPRINT を想定しています。 詳細については、信頼されたルート CA 証明書の SHA-1 ハッシュの取得に関する記事を参照してください。 証明書の詳細から拇印をコピーして貼り付けた場合は、余分な (3F) 表示されない文字が含まれていないことを確認します。含まれていると、SignFile で証明書を検索できない可能性があります。

関連項目