SignFile (tarea)
Firma un archivo determinado con el certificado especificado. SignFile solo está pensado para firmar archivos ClickOnce. Es un contenedor para la herramienta signtool.exe
y no es una tarea de firma de uso general.
Parámetros
En la siguiente tabla se describen los parámetros de la tarea SignFile
.
Tenga en cuenta que los certificados SHA-256 solo están permitidos en equipos que tienen .NET 4.5 y versiones posteriores.
Advertencia
A partir de Visual Studio 2013 Update 3, esta tarea tiene una signatura nueva que le permite especificar la versión del marco de trabajo de destino para el archivo. Le recomendamos utilizar la nueva firma, siempre que sea posible, ya que el proceso de MSBuild solo utiliza hashes SHA-256 cuando el marco de trabajo de destino es .NET 4.5 o una versión posterior. Si el marco de trabajo destino es .NET 4.0 o una versión anterior, no se utilizará el hash SHA-256.
Parámetro | Descripción |
---|---|
CertificateThumbprint |
Parámetro String requerido.Especifica el certificado que se va a usar en la signatura. Este certificado debe estar ubicado en el almacén personal del usuario actual. |
SigningTarget |
Parámetro ITaskItem requerido. Especifica los archivos (de tipo .exe o .dll) que se van a firmar con el certificado. |
TimestampUrl |
Parámetro String opcional.Especifica la dirección URL del servidor con marca de tiempo. |
TargetFrameworkVersion |
La versión de .NET Framework la que se utiliza para el destino. |
Comentarios
Además de los parámetros enumerados anteriormente, esta tarea hereda los parámetros de la clase Task. Para obtener una lista de estos parámetros adicionales y sus descripciones, consulte Task Base (Clase).
SignFile requiere que se instale Visual Studio o un SDK de Windows 8.1 para encontrar la herramienta signtool.exe
en la ruta de acceso. No se puede usar en escenarios de CI/CD en los que solo se instalan las herramientas de compilación.
Ejemplo
En el ejemplo siguiente se utiliza la tarea SignFile
para firmar los archivos especificados en la colección de elementos FilesToSign
con el certificado definido por la propiedad 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>
Nota
La huella digital del certificado es el hash SHA-1 del certificado. En este ejemplo se supone que hay una variable CERTIFICATE_THUMBPRINT
de entorno que contiene la huella digital. Para más información, consulte Obtain the SHA-1 hash of a trusted root CA certificate (Obtener el hash SHA-1 de un certificado de entidad de certificación raíz de confianza). Si copia y pega la huella digital de los detalles del certificado, asegúrese de que no incluye los caracteres invisibles (3F) adicionales, ya que esto puede impedir que SignFile
encuentre el certificado.