Nautilus Maceraları

Kişisel laboratuvar

Dll Dosyasını İmzalamak

Merhaba.

İpucu niteliğinde bir içerikle karşı karşıyasınız.

Bazen dll dosyalarımızı imzalamak isteyebiliriz. (Hiçte ihtiyaç duymadım diyenler haklılar, çünkü bende ihtiyaç duymamıştım). Peki neden imzalamak isteriz? Çünkü uygulama geliştirdikten sonra dağıtıma çıkarız. Dağıtım aracı olarak Clickonce kullandık diyelim. Bu araç dağıtıma çıkan ürünü hedef makineye yüklerken bir takım güvenlik ayarlarını da sizden ister. Yani imzalanması gereken veya imzalanmamış dll dosyalarını sizden alır ve yükler. Tabi sadece imzalanan veya imzalanmayan dll dosyalarında bir sıkıntı yaşamazsınız. Peki imzalanması ertelenmiş/geciktirilmiş dll dosyalarında ne yapmalıyız? Hiçbir şey yapmazsak ve yayına alırsak aşağıdaki hata bize artık zamanı geldi Frodo. Shire'dan ayrılmalısın der.

Could not load file or assembly 'DevExpress.Data.vXX' or one of its dependencies. Strong name signature could not be verified. The assembly may have been tampered with, or it was delay signed but not fully signed with the correct private key. (Exception from HRESULT: 0x80131045)

Uygulamayı yazdık dağıtım sunucusuna attık. Her şey tamam ama yüklerken gelen bu hata da ne? Bu da size ilgili dll dosyasının imzalanmadığını söylüyor. İmzalanmayan dosyanında güvenliğinden şüphe ederim diyor. İyi de ben Clickonce ile zaten imzalamak istemediğimi belirtmiştim. Ama o iş öyle olmaz burada bürokrasi var bir sakinleş diyor. Neyse geek'i bırakalım. 

Bu dll dosyasını imzalamamız gerekli. Bir dll dosyasını imzalamak isterken önüme SN.exe çıktı. Bu uygulama ile dll dosyalarınızı komut satırıyla imzalayabilirsiniz. Ama arkadaşımızdan birisi bu işi daha da basitleştirmiş ve .NET Assembly Strong-Name Signer yazmış. Bu araç ile ilgili dll dosyasını açtığımda aşağıdaki şekilde bir ekran göreceksiniz(Sakın yönetici olarak başlatmamazlık etme). Bu aracı kullanarak, ya ürettiğiniz bir sertifikayla ya da dilerseniz ilgili alanları boş bırakıp varsayılan sertifika ile imzalarsınız.(Bu aracın sitesine girip detaylı bilgi edinebilirsiniz)

Evet bizim aslında dağıtıma kadar sesi çıkmayan dll dosyası gecikmeli imza ile yüklenmek isterken hataya düştü ve uyarı mesajı verip yükleme iptal edildi. Strong Name Signer aracını kullanarak bu dll i seçip imzalayın. Artık dağıtıma hazır. 

Herkese iyi günler diliyorum.

Loading