Задача 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. Список этих дополнительных параметров и их описания см. в разделе базовый класс задачи.
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
от поиска сертификата.
См. также
- Справочник по задачам
- задачи