SignFile görevi
Belirtilen sertifikayı kullanarak belirtilen dosyayı imzalar. SignFile yalnızca ClickOnce dosyalarını imzalamak için tasarlanmıştır.
signtool.exe
aracı için sarmalayıcıdır ve genel amaçlı bir imzalama görevi değildir.
Parametre
Aşağıdaki tabloda SignFile
görevinin parametreleri 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 .dlltüründe sertifikayla imzalayacak dosyaları belirtir. |
TimestampUrl |
İsteğe bağlı String parametresi.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 Task sınıfından devralır. Bu ek parametrelerin ve açıklamalarının listesi için bkz. Görev temel sınıfı.
SignFile, yolda signtool.exe
aracını bulmak için Visual Studio veya Windows 8.1 SDK'sının yüklenmesini gerektirir. Yalnızca derleme araçlarının yüklü olduğu CI/CD senaryolarında kullanılamaz.
Örnek
Aşağıdaki örnekte SignFile
görevi, FilesToSign
öğe koleksiyonunda belirtilen dosyaları CertificateThumbprint
özelliği tarafından belirtilen sertifikayla imzalamak için kullanılır.
<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ılır. Daha fazla bilgi için bkz. Güvenilen kök CA sertifikasıSHA-1 karması alma. Parmak izini sertifika ayrıntılarından kopyalayıp yapıştırırsanız, SignFile
sertifikayı bulmasını engelleyebilecek fazladan (3F) görünmez karakteri eklemediğinizden emin olun.