Задача 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>