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
が証明書を見つけることができなくなる可能性があります。