SignFile 任务
使用指定证书签署指定文件。 SignFile 仅用于对 ClickOnce 文件进行签名。 它是 signtool.exe
工具的包装器,并不是常规用途签名任务。
参数
下表描述了 SignFile
任务的参数。
请注意:仅允许在具有 .NET 4.5 和更高版本的计算机上使用 SHA-256 证书。
警告
自 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 类继承参数。 有关这些其他参数的列表及其说明,请参阅任务基类。
SignFile 需要安装 Visual Studio 或 Windows 8.1 SDK 才能在路径上查找 signtool.exe
工具。 它不能用于仅安装了生成工具的 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
查找证书。