Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




C#nedir?com
 
YAZAR HAKKINDA
Caner Şahan
Caner Şahan
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
24 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: .resources anahtarlarin assembly assembly.cs bilgilerini degeri dosyalar dosyasini dosyayi ediyor. gerekiyor. mono’da programa resource strong Mono ve .NET Caner Şahan
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Orta
Kategori : Mono ve .NET
Yayınlanma Tarihi : 10.4.2006
Okunma Sayısı : 29779
Yorum Sayısı : 0     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 21.11.2024
Turhal Temizer
Mac OS/X Removing CUDA 21.11.2024
Burak Selim Şenyurt
Rust ile ECS Yaklaşımını Anlamak 21.11.2024
Burak Selim Şenyurt
Birlikte Rust Öğrenelim Serisi 21.11.2024
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
Mono ile Assembly Dosyalarını Kullanma
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
Mono hünerlerini göstermeye devam ediyor. Bugun mono’da assembly’ler,resources dosyalar ve .snk anahtarların oluşturulmasını inceleyeceğiz. Öncellikle assemblyle neyi kastettiğimi anlatayım. Bu assembly  makina dili olan ve mikroişlemci programlamayı sağlayan assembly değil. Assembly.cs altında assembly özelliklerine ait fonksiyonları kullanan bir .cs dosyası. Kullanımı ise programın assembly’sine System.Reflection ile yansıma yaparak program hakkında çeşitli bilgiler vermeyi amaçlamaktadır. Programımızı derlediğimiz zaman assembly.cs’de birlikte derlenir. Bu derleme aşamasında GAC(Global Assembly Cache)’e assembly bilgilerini yükler. Bunun için iki adım izler. Birinci adım olarak SHA1 algoritması verilen bir algoritmayla bir hash değeri oluşturur. Bu hash değer assembly manifest içinde saklanır. Çalışma anında ise bu hash değeri yeniden hesaplanır ve daha önceki hash değeri ile karşılaştırılır. Eğer iki değer aynı ise assembly çalıştırılan programa yüklenir,değilse assembly yüklenmez.

Assembly manifestte üretilen hash değerinin karşılaştırmadan önce encrypted edilmesi gerekir. Bunun için strong name yaratarak assemblye bu strong name’i dahil ederek sağlarız. strong name’lerin uzantıları .snk’dır(Strong Name Key). strong name’ler private key/public key olarak dizayn edilebilir. strong name oluşturmak için sn.exe’yi çalıştırmamız gerekir.



Bu işlemi gerçekleştirdikten sonra anahtar.snk isimli bir strong name’e sahip oluyoruz. anahtar.snk’yı assembly.cs içinde belirtmemiz gerekiyor.

[assembly: AssemblyKeyFile("anahtar.snk")]
Artık assemblyimiz bu anahtarı kullanacağımızı biliyor.

//Assembly.cs
using System.Reflection;
using System.Runtime.CompilerServices;
using System;

//Assembly ile ilgili genel bilgileri burda veriyoruz.
[assembly: AssemblyTitle("olusturdugumuz assembly")]
[assembly: AssemblyDescription("Assembly ile daha profosyonel yazilimlar.")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyCompany("Csharpnedir.com")]
[assembly: AssemblyProduct("Assembly ")]
[assembly: AssemblyCopyright("Caner ŞAHAN")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("tr-TR")]

//Versiyon bilgilerini bu özellikle belirtiyoruz.
// * karakterini kullanarak Revision ve Build Numbers’ları default olarak atanması sağlanıyor.
[assembly: AssemblyVersion("1.0.*")]

//anahtar.snk’yı burda belirtiyoruz.aynı dizindeyse sadece ismi yeterli.değilse yolunu yazıyoruz.
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("anahtar.snk")]
[assembly: AssemblyKeyName("anahtar")]
Assembly.cs’i derlerken,şuna dikkat etmemiz gerekiyor. Programımızın başlangıç adresi olmadığı için bu programı kütüphane(.dll)olarak derlememiz gerekiyor. Fakat bundan önce assembly için bir .resources file oluşturmalıyız. Bunun için mononun içinde bulunan monoresgen’i kullanıyoruz. monoresgen’in kullanımı; bir .txt dosyasını yada bir .resx dosyayı .resources file’a dönüştürüyor.Biz resource.txt adlı bir dosyayı .resources dosyaya dönüştürelim

resource.txt ;Bu bir Assembly.cs’in .resources dosyasıdır
resources1=deneme1 ;bir resource paketi
resources2=deneme2 ;ikinci bir resource paketi


Assembly.resources dosyasını oluşturduğumuza göre,Assembly.cs’i library olarak derleyebiliriz.



Artık Assemblymiz derlenen programa yansıtıldı. Peki programda yarattığı sonuçlar neler onlara bir göz atarsak.





İyi çalışmalar...

 

 

Makale:
Mono ile Assembly Dosyalarını Kullanma Mono - Linux'ta .NET Caner Şahan
  • Yazılan Yorumlar
  • Yorum Yaz
Bu konu hakkında yayınlanan yorum bulunmamaktadır.
"Yorum Yaz" tabını kullanarak sizde yorumlarınızı yazabilirsiniz.
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor