SignFile görevi
Belirtilen sertifikayı kullanarak belirtilen dosyayı imzalar. SignFile yalnızca ClickOnce dosyalarını imzalamak için tasarlanmıştır. Araç için signtool.exe
sarmalayıcıdır ve genel amaçlı bir imzalama görevi değildir.
Parametreler
Aşağıdaki tabloda görevin parametreleri SignFile
açıklanmaktadır.
SHA-256 sertifikalarına yalnızca .NET 4.5 ve üzeri olan makinelerde izin verildiğini unutmayın.
Uyarı
Visual Studio 2013 Güncelleştirme 3'te başlayarak, bu görevin dosya için hedef çerçeve sürümünü belirtmenize olanak tanıyan yeni bir imzası vardır. MSBuild işlemi yalnızca hedef çerçeve .NET 4.5 veya üzeri olduğunda SHA-256 karmalarını kullandığından, mümkün olduğunda yeni imzayı kullanmanız önerilir. Hedef çerçeve .NET 4.0 veya altındaysa SHA-256 karması kullanılmaz.
Parametre | Açıklama |
---|---|
CertificateThumbprint |
Gerekli String parametresi.İmzalama için kullanılacak sertifikayı belirtir. Bu sertifika geçerli kullanıcının kişisel deposunda olmalıdır. |
SigningTarget |
Gerekli ITaskItem parametresi. .exe veya .dll türündeki sertifikayla imzalayacak dosyaları belirtir. |
TimestampUrl |
İsteğe bağlı String parametre.Zaman damgalama sunucusunun URL'sini belirtir. |
TargetFrameworkVersion |
Hedef için kullanılan .NET Framework sürümü. |
Açıklamalar
Yukarıda listelenen parametrelere ek olarak, bu görev parametreleri sınıfından Task devralır. Bu ek parametrelerin ve açıklamalarının listesi için bkz . Görev temel sınıfı.
SignFile, aracı yolda bulmak için Visual Studio veya Windows 8.1 SDK'sının signtool.exe
yüklenmesini gerektirir. Yalnızca derleme araçlarının yüklü olduğu CI/CD senaryolarında kullanılamaz.
Örnek
Aşağıdaki örnek, öğe koleksiyonunda FilesToSign
belirtilen dosyaları özelliği tarafından CertificateThumbprint
belirtilen sertifikayla imzalamak için görevini kullanırSignFile
.
<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>
Not
Sertifika parmak izi, sertifikanın SHA-1 karmasıdır. Buradaki örnekte parmak izini içeren bir ortam değişkeni CERTIFICATE_THUMBPRINT
varsayılmıştır. Daha fazla bilgi için bkz . Güvenilen kök CA sertifikasının SHA-1 karması alma. Parmak izini sertifika ayrıntılarından kopyalayıp yapıştırırsanız, ek (3F) görünmez karakteri eklemediğinizden emin olun; bu, sertifikanın bulunmasını engelleyebilir SignFile
.