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>

请参见

概念

MSBuild 任务

其他资源

MSBuild 任务参考