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="$(CERTIFICATE_THUMBPRINT)"
SigningTarget="@(FileToSign)"
TargetFrameworkVersion="v4.5" />
</Target>
</Project>
Примечание.
Отпечатком сертификата является хэш SHA-1 сертификата. В примере предполагается переменная CERTIFICATE_THUMBPRINT
среды, содержащая отпечаток. Дополнительные сведения см. в статье о получении хэша SHA-1 сертификата доверенного корневого ЦС. Если вы копируете и вставляете отпечаток из сведений о сертификате, убедитесь в отсутствии лишнего невидимого знака (3F), из-за которого SignFile
не сможет обнаружить сертификат.