Tarea SignFile

Firma el archivo especificado con el certificado especificado. SignFile solo está pensado para firmar archivos ClickOnce. Es un contenedor para la herramienta de signtool.exe y no es una tarea de firma de uso general.

Parámetros

En la tabla siguiente se describen los parámetros de la tarea SignFile.

Tenga en cuenta que solo se permiten certificados SHA-256 en máquinas que tengan .NET 4.5 y versiones posteriores.

Advertencia

A partir de Visual Studio 2013 Update 3, esta tarea tiene una nueva firma que le permite especificar la versión de la plataforma de destino para el archivo. Se recomienda usar la nueva firma siempre que sea posible, ya que el proceso de MSBuild usa hash SHA-256 solo cuando la plataforma de destino es .NET 4.5 o superior. Si la plataforma de destino es .NET 4.0 o inferior, no se usará el hash SHA-256.

Parámetro Descripción
CertificateThumbprint Parámetro String requerido.

Especifica el certificado que se va a usar para firmar. Este certificado debe estar en el almacén personal del usuario actual.
SigningTarget Parámetro ITaskItem requerido.

Especifica los archivos que se van a firmar con el certificado, de tipo .exe o .dll.
TimestampUrl Parámetro de String opcional.

Especifica la dirección URL de un servidor de marca de tiempo.
TargetFrameworkVersion Versión de .NET Framework que se usa para el destino.

Observaciones

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, vea clase base task.

SignFile requiere que se instale visual Studio o un SDK de Windows 8.1 para buscar 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 usa la tarea SignFile para firmar los archivos especificados en la colección de elementos de FilesToSign con el certificado especificado 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 una variable de entorno CERTIFICATE_THUMBPRINT que contiene la huella digital. Para obtener más información, vea 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 no incluir el carácter invisible adicional (3F), lo que puede impedir que SignFile busque el certificado.

Consulte también