Tarefa SignFile
Assina o arquivo especificado usando o certificado especificado. SignFile destina-se apenas para assinar arquivos ClickOnce. É 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 somente em máquinas com .NET 4.5 e superior.
Advertência
A partir da Atualização 3 do Visual Studio 2013, essa tarefa tem uma nova assinatura que permite especificar a versão da estrutura de destino para o arquivo. Você é incentivado a usar a nova assinatura sempre que possível, porque o processo MSBuild usa hashes SHA-256 somente quando a estrutura de destino é .NET 4.5 ou superior. Se a estrutura de destino for .NET 4.0 ou inferior, o hash SHA-256 não será usado.
Parâmetro | Descrição |
---|---|
CertificateThumbprint |
Parâmetro de String necessário.Especifica o certificado a ser usado para assinatura. Esse certificado deve estar no repositório pessoal do usuário atual. |
SigningTarget |
Parâmetro de ITaskItem necessá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, esta tarefa herda parâmetros da classe Task. Para obter uma lista desses parâmetros adicionais e suas descrições, consulte Classe base de tarefa.
SignFile requer o Visual Studio ou um SDK do Windows 8.1 para ser instalado, a fim de localizar a ferramenta signtool.exe
no caminho. Ele não pode ser usado em cenários de CI/CD onde apenas as ferramentas de compilação 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="$(CERTIFICATE_THUMBPRINT)"
SigningTarget="@(FileToSign)"
TargetFrameworkVersion="v4.5" />
</Target>
</Project>
Observação
A impressão digital do certificado é o hash SHA-1 do certificado. O exemplo aqui pressupõe uma variável de ambiente CERTIFICATE_THUMBPRINT
que contém a impressão digital. Para obter mais informações, consulte 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, certifique-se de não incluir o caractere invisível extra (3F), o que pode impedir que SignFile
encontre o certificado.