SignFile - задача

Подписывает указанный файл с помощью заданного сертификата. Задача SignFile предназначена только для подписывания файлов ClickOnce. Это оболочка для инструмента signtool.exe, которая не является задачей подписывания общего назначения.

Параметры

В следующей таблице приводятся параметры задачи 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 .

Задает файлы типа EXE или DLL, которые будут подписаны с использованием сертификата.
TimestampUrl Необязательный параметр String.

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

Замечания

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

Для SignFile необходима установка Visual Studio или пакета SDK для Windows 8.1, чтобы можно было найти инструмент signtool.exe по этому пути. Эту задачу нельзя использовать в сценариях CI/CD, где установлены только инструменты сборки.

Пример

В следующем примере используется задача SignFile для подписания файлов, указанных в коллекции элементов FilesToSign, с помощью сертификата, заданного свойством 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>

Примечание.

Отпечатком сертификата является хэш SHA-1 сертификата. Дополнительные сведения см. в статье о получении хэша SHA-1 сертификата доверенного корневого ЦС. Если вы копируете и вставляете отпечаток из сведений о сертификате, убедитесь в отсутствии лишнего невидимого знака (3F), из-за которого SignFile не сможет обнаружить сертификат.

См. также