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="$(CertificateThumbprint)"
            SigningTarget="@(FileToSign)"
            TargetFrameworkVersion="v4.5" />
    </Target>
</Project>

Nota

La huella digital del certificado es el hash SHA-1 del certificado. 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.

Vea también