SignFile 任务
使用指定证书签署指定文件。
参数
下表描述了 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 参数。 指定要与证书一起签名的文件。 |
TimestampUrl |
可选 String 参数。 指定时间戳服务器的 URL。 |
TargetFrameworkVersion |
用于目标的 .NET Framework 版本。 |
备注
除上面列出的参数外,此任务还从 Task 类继承参数。 如需这些其他错误及其说明的列表,请参阅 任务基类。
示例
以下示例使用 SignFile 任务来签署 FilesToSign 项集合中指定的文件,使用的证书由 Certificate 属性定义。
<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<FileToSign Include="File.exe" />
</ItemGroup>
<PropertyGroup>
<Certificate>Cert.cer</Certificate>
</PropertyGroup>
<Target Name="Sign">
<SignFile
CertificateThumbprint="$(CertificateThumbprint)"
SigningTarget="@(FileToSign)"
TargetFrameworkVersion="v4.5" />
</Target>
</Project>
备注
证书指纹是该证书的 SHA-1 哈希。有关详细信息,请参阅获取受信任的根 CA 证书的 SHA-1 哈希。
以下示例使用 Exec 任务来签署 FilesToSign 项集合中指定的文件,使用的证书由 Certificate 属性定义。 你可用此在生成过程中对 Windows 安装程序文件进行签名。
<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<FileToSign Include="File.msi" />
</ItemGroup>
<PropertyGroup>
<Certificate>Cert.cer</Certificate>
</PropertyGroup>
<Target Name="Sign">
<Exec Command="signtool.exe sign /f CertFile /p Password "@(FileToSign)" "/>
<SignFile
CertificateThumbprint="$(CertificateThumbprint)"
SigningTarget="@(FileToSign)"
TargetFrameworkVersion="v4.0" />
</Target>
</Project>