C # veya .NET'te Assembly'nin ne olduğunu açıklar mısınız?
- Nerede başlıyor ve nerede bitiyor?
- Meclisler hakkında hangi önemli bilgileri bilmeliyim?
C # veya .NET'te Assembly'nin ne olduğunu açıklar mısınız?
Yanıtlar:
Bir derleme, kodunuzun derlenmiş çıktısıdır, genellikle bir DLL'dir, ancak EXE'niz de bir derlemedir. Herhangi bir .NET projesi için en küçük dağıtım birimidir.
Derleme tipik olarak, belirli bir makinede ilk kez çalıştırıldığında yerel koda ("JITted" - Just-In-Time derleyicisi tarafından derlenen) derlenecek olan MSIL (Microsoft Intermediate dili) .NET kodunu içerir. Derlenen bu kod ayrıca derlemede saklanacak ve sonraki çağrılarda yeniden kullanılacaktır.
Derleme ayrıca simgeler, bit eşlemler, dize tabloları ve benzeri kaynakları da içerebilir. Ayrıca, derleme, derleme bildiriminde meta verileri de içerir - sürüm numarası, güçlü ad, kültür, başvurulan derlemeler vb. Gibi bilgiler.
Vakalarınızın% 99'unda, bir montaj diskteki fiziksel bir dosyaya eşittir - çok dosyalı bir montaj durumu (tek bir dosyadan daha fazla dağıtılan bir montaj) oldukça garip bir uç durumu gibi görünmektedir. 5 yıldan fazla .NET geliştirmemde şimdiye kadar hiç karşılaşmadım.
Çok dosyalı bir derlemede, bir DLL veya EXE dosyasında yalnızca bir derleme bildirimi ve birden çok netmodule dosyasında MSIL kodu olacaktır.
Microsoft .NET çerçevesinde bir derleme, dağıtım, sürüm oluşturma ve güvenlikte kullanım için kısmen derlenmiş bir kod kitaplığıdır.
http://www.codeguru.com/columns/csharp_learning/article.php/c5845
Derleme, her .NET uygulamasının başarılı bir şekilde derlenmesinin ardından derleyici tarafından otomatik olarak oluşturulan bir dosyadır. Dinamik Bağlantı Kitaplığı veya çalıştırılabilir bir dosya olabilir. Bir uygulama için yalnızca bir kez oluşturulur ve sonraki her derlemede derleme güncellenir.
İşte .NET Derlemelerinin yapısının başka bir açıklaması olan mini bir alıntı:
.NET çerçevesi, hem meta verileri hem de bildirim bilgilerini depolayan modüller, derlemeler kavramlarından oluşur. Bir montaj birden çok modül içerebilir. Visual C #, C # derleyicisi (csc.exe) tarafından bir derlemeye dönüştürülen yalnızca bir modül oluşturur, ancak bir derleme, derleme bağlayıcı (al.exe) komut satırı aracı aracılığıyla birçok .NET modülünü birbirine bağlayabilir. Örneğin, kaynak kodu .cs dosyalarınızın her biri bir modülde derlenebilir ve bir derleme oluşturmak için birbirine bağlanabilir - bir derleme yalnızca bir modül ve kaynaklar koleksiyonudur. Ancak bu modüllerden biri; CLR tarafından anlaşılması için derlemenin bildirim meta verileri (aşağıya bakın) bilgilerini içermesi gerekir.
....
VS.NET içinde yeni bir .exe veya .dll oluşturduğunuzda, dosyanızın bin klasörünüzün içinde göründüğünü görürsünüz. Not defterinde açmak anlamsızca veya hatta onaltılık bir düzenleyicinin içinde dosyanın yapısını bilmeden ortaya çıkarır, ondan anlam çıkarmak için ildasm.exe veya CFF explorer gibi bir araca ihtiyacınız vardır. Montajın yapısı aşağıdaki gibidir:PE başlığı
CLR başlığı
CLR meta verileri
CLR
IL kodu
Yerel veriler
Cevap, anında kavrayabilmek için.
Basitçe söylemek gerekirse, sınıflarınızı ve varsa ek dosyalarınızı içeren derlenmiş bir projedir. Yani çözümdeki her proje montajdır .
Ya da daha teknik olarak,
Bir derleme , bir türün flesystem içinde depolandığı yerdir. Derlemeler, kodu dağıtmak için bir mekanizmadır. Örneğin,
System.Data.dll
derleme verileri yönetmek için türler içerir. Tipleri diğer montajlarda kullanmak için bunlara referans verilmelidir. - Kaynak
Nasıl biliyoruz? Çözüm altında bir projenin özelliklerine bakarsanız aşağıdaki resimleri görebilirsiniz.
Projeyi derlediğinizde, DLL veya EXE'ye dönüşür .
Bir kaynak kodu dil derleyicisi tarafından derlendiğinde, Yönetilen Bir Derleme ve MSIL (MisroSoft Ara Dili) oluşturur. Bu Derleme .dll veya .exe dosyası içerir . Bir Assebmly, iki tür Özel Derleme ve Paylaşılan Derleme olabilir ; paylaşılan Derleme, GAC'de (Global Derleme Önbelleği) depolanır, böylece özel derleme yalnızca bir Uygulama tarafından kullanılabilen uygulama klasöründe saklanırken herhangi bir uygulama ona başvurabilir.
Derleme, uygulamanızı yayınladığınızda veya derlediğinizde oluşturulacak olan bir DLL veya EXE'dir.
Bir Montaj, mantıksal birimlerden oluşan bir koleksiyondur. Mantıksal birimler, bir uygulama oluşturmak ve bunları .Net çerçevesini kullanarak dağıtmak için gereken türleri ve kaynakları ifade eder. Temel olarak, Assembly, Exe ve DLL'lerin bir koleksiyonudur. Taşınabilir ve çalıştırılabilir.
Programınızın (projenizin) kaynak kodunu yazdıktan sonra, projenize bağlı olarak DLL veya EXE olabilen bir dosya oluşturulur. Tek bir proje için yalnızca bir kez yapar. İki türü vardır 1: - tekli 2: - paylaşımlı veya çok programlı tekli montaj, yalnızca tek bir programda kullanılırken paylaşımlı çoklu program için kullanılabilir