Nasıl yapılır: Ortak-özel anahtar çifti oluşturma

Bir derlemeyi kesin adla imzalamak için ortak/özel anahtar çiftine sahip olmanız gerekir. Bu ortak ve özel şifreleme anahtar çifti, derleme sırasında tanımlayıcı adlandırılmış bir derleme oluşturmak için kullanılır. Tanımlayıcı Ad aracını (Sn.exe) kullanarak bir anahtar çifti oluşturabilirsiniz. Anahtar çifti dosyaları genellikle bir .snk uzantısına sahiptir.

Not

Visual Studio'da C# ve Visual Basic proje özellik sayfaları, mevcut anahtar dosyalarını seçmenize veya Sn.exe kullanmadan yeni anahtar dosyaları oluşturmanıza olanak tanıyan bir İmzalama sekmesi içerir. Visual C++'da, Özellik Sayfaları penceresinin Yapılandırma Özellikleri bölümünün Bağlayıcı bölümündeki Gelişmiş özellik sayfasında mevcut bir anahtar dosyasının konumunu belirtebilirsiniz. Visual Studio 2005'le başlayarak anahtar dosya çiftlerini tanımlamak için özniteliğinin kullanılması AssemblyKeyFileAttribute kullanımdan kaldırıldı.

Anahtar çifti oluşturma

Anahtar çifti oluşturmak için komut isteminde aşağıdaki komutu yazın:

sn –k<dosya adı>

Bu komutta dosya adı, anahtar çiftini içeren çıkış dosyasının adıdır.

Aşağıdaki örnek, sgKey.snk adlı bir anahtar çifti oluşturur.

sn -k sgKey.snk

Bir derlemeyi imzalamayı geciktirmek istiyorsanız ve anahtar çiftinin tamamını (test senaryolarının dışında olma olasılığı düşüktür) denetlerseniz, aşağıdaki komutları kullanarak bir anahtar çifti oluşturabilir ve ardından ortak anahtarı ondan ayrı bir dosyaya ayıklayabilirsiniz. İlk olarak anahtar çiftini oluşturun:

sn -k keypair.snk

Ardından, ortak anahtarı anahtar çiftinden ayıklayın ve ayrı bir dosyaya kopyalayın:

sn -p keypair.snk public.snk

Anahtar çiftini oluşturduktan sonra, dosyayı tanımlayıcı ad imzalama araçlarının bulabileceği bir yere koymanız gerekir.

Derlemeyi kesin adla imzalarken, Derleme Bağlayıcısı (Al.exe) geçerli dizine ve çıkış dizinine göre anahtar dosyasını arar. Komut satırı derleyicilerini kullanırken anahtarı kod modüllerinizi içeren geçerli dizine kopyalamanız yeterlidir.

Visual Studio'nun proje özelliklerinde İmzalama sekmesi olmayan önceki bir sürümünü kullanıyorsanız, önerilen anahtar dosya konumu, dosya özniteliği aşağıda belirtilen proje dizinidir:

[assembly:AssemblyKeyFileAttribute("keyfile.snk")];
[assembly:AssemblyKeyFileAttribute("keyfile.snk")]
<Assembly:AssemblyKeyFileAttribute("keyfile.snk")>

Ayrıca bkz.