次の方法で共有


SignFile タスク

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

パラメーター

次の表では、SignFile タスクのパラメーターについて説明します。

SHA-256 証明書は、.NET 4.5 以降を持つマシンでのみ許可されることに注意してください。

警告

Visual Studio 2013 Update 3 以降、このタスクには、ファイルのターゲット フレームワーク のバージョンを指定できる新しい署名があります。 MSBuild プロセスでは、ターゲット フレームワークが .NET 4.5 以降の場合にのみ 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>

手記

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

関連項目