Tarefa SignFile

Assina o arquivo especificado usando o certificado especificado. SignFile destina-se apenas à assinatura de arquivos ClickOnce. Ela é um wrapper para a ferramenta signtool.exe e não é uma tarefa de assinatura de uso geral.

Parâmetros

A tabela a seguir descreve os parâmetros da tarefa SignFile.

Observe que os certificados SHA-256 são permitidos apenas em computadores que tenham o .NET 4.5 e superior.

Aviso

A partir do Visual Studio 2013 Atualização 3, essa tarefa tem uma nova assinatura que permite que você especifique a versão da estrutura de destino do arquivo. Você é incentivado a usar a nova assinatura sempre que possível, pois o processo do MSBuild usa hashes SHA-256 somente quando a estrutura de destino for .NET 4.5 ou superior. Se a estrutura de destino for .NET 4.0 ou abaixo, o hash SHA-256 não será usado.

Parâmetro Descrição
CertificateThumbprint Parâmetro String obrigatório.

Especifica o certificado a ser usado para a assinatura. Esse certificado deve estar no repositório pessoal do usuário atual.
SigningTarget Parâmetro ITaskItem obrigatório.

Especifica os arquivos a serem assinados com o certificado, do tipo .exe ou .dll.
TimestampUrl Parâmetro String opcional.

Especifica a URL de um servidor de carimbo de data/hora.
TargetFrameworkVersion A versão do .NET Framework que é usada para o destino.

Comentários

Além dos parâmetros listados acima, essa tarefa herda parâmetros da classe Task. Para obter uma lista desses parâmetros adicionais e suas descrições, confira Classe base Task.

A SignFile requer que o Visual Studio ou um SDK de Windows 8.1 seja instalado para localizar a ferramenta signtool.exe no caminho. Ela não pode ser usada em cenários de CI/CD em que apenas as ferramentas de build estão instaladas.

Exemplo

O exemplo a seguir usa a tarefa SignFile para assinar os arquivos especificados na coleção de itens FilesToSign com o certificado especificado pela propriedade 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="$(CertificateThumbprint)"
            SigningTarget="@(FileToSign)"
            TargetFrameworkVersion="v4.5" />
    </Target>
</Project>

Observação

A impressão digital do certificado é o hash SHA-1 do certificado. Para saber mais, confira Obter o hash SHA-1 de um certificado de autoridade de certificação raiz confiável. Se você copiar e colar a impressão digital dos detalhes do certificado, não inclua o caractere invisível extra (3F), que pode impedir SignFile de encontrar o certificado.

Confira também