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
で証明書を検索できない可能性があります。