Поделиться через


Задача SignFile

Подписывает указанный файл с помощью заданного сертификата.

Параметры

В следующей таблице приводятся параметры задачи SignFile.

Обратите внимание, что сертификаты SHA-256 разрешены только на компьютерах с .NET 4.5 или более поздней версией.

Предупреждение

Начиная с Visual Studio 2013 с обновлением 3, для этой задачи используется новая подпись, которая позволяет указывать версию целевой платформы для файла.Новую подпись рекомендуется использовать там, где это возможно, поскольку процесс MSBuild работает с хэшами SHA-256 только в том случае, если поддерживается целевая платформа .NET 4.5 или более поздней версии.Если версия целевой платформы .NET 4.0 или ниже, хэш SHA-256 использоваться не будет.

Параметр

Описание

CertificateThumbprint

Обязательный параметр String.

Задает сертификат, который будет использоваться для подписи. Этот сертификат должен находиться в личном хранилище текущего пользователя.

SigningTarget

Обязательный параметр ITaskItem.

Задает файлы, который будут подписаны с помощью сертификата.

TimestampUrl

Необязательный параметр String.

Задает URL-адрес сервера отметок времени.

TargetFrameworkVersion

Версия платформы .NET Framework, используемой для целевого объекта.

Заметки

Помимо перечисленных выше параметров эта задача наследует параметры от класса Task. Список этих дополнительных параметров и их описания см. в разделе Базовый класс Task.

Пример

В следующем примере используется задача SignFile для подписания файлов, указанных в коллекции элементов FilesToSign, с помощью сертификата, заданного свойством Certificate.

<Project xmlns="https://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>

Примечание

Отпечатком сертификата является хэш SHA-1 сертификата.Дополнительные сведения см. в разделе Получение хэша SHA-1 сертификата доверенного корневого ЦС.

В следующем примере используется задача Exec для подписания файлов, указанных в коллекции элементов FilesToSign, с помощью сертификата, заданного свойством Certificate. Этот пример можно использовать для подписи файлов установщика Windows во время процесса построения.

<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>
        <FileToSign Include="File.msi" />
    </ItemGroup>
    <PropertyGroup>
        <Certificate>Cert.cer</Certificate>
    </PropertyGroup>
    <Target Name="Sign">
        <Exec Command="signtool.exe sign /f CertFile /p Password "@(FileToSign)" "/>
        <SignFile
            CertificateThumbprint="$(CertificateThumbprint)"
            SigningTarget="@(FileToSign)" 
            TargetFrameworkVersion="v4.0" />
    </Target>
</Project>

См. также

Основные понятия

Задачи MSBuild

Другие ресурсы

Справочные сведения о задачах MSBuild