.NET’te bütünleştirilmiş kodlar

Derlemeler için temel dağıtım, sürüm denetimi, yeniden kullanım, etkinleştirme kapsamı ve güvenlik izinlerini oluşturur. NET tabanlı uygulamalar. Bir derleme, birlikte çalışacak ve mantıksal bir işlevsellik birimi oluşturacak biçimde oluşturulan bir tür ve kaynakların bir derlemesidir. Derlemeler yürütülebilir (.exe) veya dinamik bağlantı kitaplığı (.dll) dosyalarının biçimini alır ve .NET uygulamalarının yapı taşlarıdır. Ortak dil çalışma zamanına tür uygulamaları hakkında dikkat etmesi gereken bilgileri sağlar.

.NET ve .NET Framework bir veya daha fazla kaynak kodu dosyasından derleme oluşturabilirsiniz. .NET Framework derlemeler bir veya daha fazla modül içerebilir. Bu, birden çok geliştiricinin tek bir derleme oluşturmak için birleştirilen ayrı kaynak kodu dosyaları veya modülleri üzerinde çalışabilmesi için daha büyük projelerin planlanmasına olanak tanır. Modüller hakkında daha fazla bilgi için bkz . Nasıl yapılır: Çok dosyalı derleme derleme.

Derlemeler aşağıdaki özelliklere sahiptir:

  • Derlemeler .exe veya .dll dosyaları olarak uygulanır.

  • .NET Framework hedefleyen kitaplıklar için, derlemeleri genel derleme önbelleğine (GAC) yerleştirerek uygulamalar arasında paylaşabilirsiniz. Derlemeleri GAC'ye ekleyebilmeniz için önce tanımlayıcı adla adlandırmanız gerekir. Daha fazla bilgi için bkz . Tanımlayıcı adlandırılmış derlemeler.

  • Derlemeler yalnızca gerekliyse belleğe yüklenir. Kullanılmıyorlarsa yüklenmez. Bu, derlemelerin daha büyük projelerdeki kaynakları yönetmek için verimli bir yol olabileceği anlamına gelir.

  • Yansıma kullanarak bir derleme hakkında program aracılığıyla bilgi edinebilirsiniz. Daha fazla bilgi için bkz. Yansıma (C#) veya Yansıma (Visual Basic).

  • Bir derlemeyi yalnızca .NET'te sınıfını MetadataLoadContext kullanarak incelemek ve .NET Framework yükleyebilirsiniz. MetadataLoadContextAssembly.ReflectionOnlyLoad yöntemlerinin yerini alır.

Ortak dil çalışma zamanındaki derlemeler

Derlemeler, ortak dil çalışma zamanını tür uygulamaları hakkında bilmesi gereken bilgilerle birlikte sağlar. Çalışma zamanı için, bir derleme bağlamı dışında bir tür yoktur.

Derleme aşağıdaki bilgileri tanımlar:

  • Ortak dil çalışma zamanının yürüttüğü kod. Her derlemenin yalnızca bir giriş noktası olabileceğini unutmayın: DllMain, WinMainveya Main.

  • Güvenlik sınırı. Bir derleme, izinlerin istendiği ve verildiği birimdir. Derlemelerdeki güvenlik sınırları hakkında daha fazla bilgi için bkz . Derleme güvenlik konuları.

  • Tür sınırı. Her tipin kimliği, içinde bulunduğu derlemenin adını içerir. Bir derlemenin kapsamına yüklenen ve MyType olarak adlandırılan bir tür, başka bir derlemenin kapsamına yüklenen ve MyType olarak adlandırılan türle aynı değildir.

  • Başvuru kapsamı sınırı. Derleme bildiriminde türleri çözümlemek ve kaynak isteklerini karşılamak için kullanılan meta veriler bulunur. Bildirim, derlemenin dışında kullanıma sunulan türleri ve kaynakları belirtir ve bağımlı olduğu diğer derlemeleri numaralandırır. Taşınabilir yürütülebilir (PE) dosyadaki Microsoft ara dil (MSIL) kodu, ilişkili bir derleme bildirimine sahip olmadığı sürece yürütülemez.

  • Sürüm sınırı. Derleme, ortak dil çalışma zamanındaki en küçük sürümlenebilir birimdir. Aynı derlemedeki tüm türler ve kaynaklar bir birim olarak sürümlenir. Derleme bildirimi, bağımlı derlemeler için belirttiğiniz sürüm bağımlılıklarını açıklar. Sürüm oluşturma hakkında daha fazla bilgi için bkz . Derleme sürümü oluşturma.

  • Dağıtım birimi. Bir uygulama başlatıldığında, sadece uygulamanın başlangıçta çağırdığı derlemeler mevcut olmalıdır. Yerelleştirme kaynaklarını veya yardımcı program sınıflarını içeren derlemeler gibi diğer derlemeler isteğe bağlı olarak alınabilir. Bu, uygulamaların ilk indirildiğinde basit ve ince olmasını sağlar. Derlemeleri dağıtma hakkında daha fazla bilgi için bkz. Uygulamaları dağıtma.

  • Yan yana yürütme birimi. Bir derlemenin birden çok sürümünü çalıştırma hakkında daha fazla bilgi için bkz. Derlemeler ve yan yana yürütme.

Derleme oluşturma

Derlemeler statik veya dinamik olabilir. Statik derlemeler, disk üzerinde taşınabilir yürütülebilir (PE) dosyalarda saklanır. Statik derlemeler arabirimleri, sınıfları ve bit eşlemler, JPEG dosyaları ve diğer kaynak dosyaları gibi kaynakları içerebilir. Doğrudan bellekten çalıştırılan ve yürütmeden önce diske kaydedilmeyen dinamik derlemeler de oluşturabilirsiniz. Yürütüldükten sonra dinamik derlemeleri diske kaydedebilirsiniz.

Derleme oluşturmak için birçok yol vardır. .dll veya .exedosyaları oluşturabilen Visual Studio gibi geliştirme araçlarını kullanabilirsiniz. Windows SDK'sında bulunan araçları kullanarak diğer geliştirme ortamlarındaki modüllerle derlemeler oluşturabilirsiniz. Dinamik derlemeler oluşturmak için gibi System.Reflection.Emitortak dil çalışma zamanı API'lerini de kullanabilirsiniz.

Derlemeleri derlemek için Visual Studio derleyin, .NET Core komut satırı arabirim araçlarıyla derleyin veya bir komut satırı derleyicisi ile .NET Framework derlemeler oluşturun. .NET CLI kullanarak derlemeler oluşturma hakkında daha fazla bilgi için bkz. .NET CLI'ya genel bakış.

Not

Visual Studio'de derleme oluşturmak için, Derleme menüsünde Derle'yi seçin.

Derleme bildirimi

Her derlemenin bir derleme bildirim dosyası vardır. Derleme bildirimi, içindekiler tablosuna benzer şekilde şunları içerir:

  • Derlemenin kimliği (adı ve sürümü).

  • .exe veya .dll dosyanızın, bit eşlem dosyalarına veya Benioku dosyalarına bağlı olduğu oluşturduğunuz diğer derlemeler gibi derlemeyi oluşturan diğer tüm dosyaları açıklayan bir dosya tablosu.

  • .dllveya diğer dosyalar gibi tüm dış bağımlılıkların listesi olan derleme başvuru listesi. Derleme başvuruları hem genel hem de özel nesnelere başvurular içerir. Genel nesneler diğer tüm uygulamalar tarafından kullanılabilir. .NET Core'da genel nesneler belirli bir .NET Core çalışma zamanıyla birleştirilir. .NET Framework genel nesneler genel bütünleştirilmiş kod önbelleğinde (GAC) bulunur. System.IO.dll , GAC'deki bir derleme örneğidir. Özel nesneler, uygulamanızın yüklendiği dizin düzeyinde veya altında bir dizin düzeyinde olmalıdır.

Derlemeler içerik, sürüm oluşturma ve bağımlılıklar hakkında bilgi içerdiğinden, bunları kullanan uygulamaların düzgün çalışması için Windows sistemlerdeki kayıt defteri gibi dış kaynaklara bağımlı olması gerekmez. Derlemeler .dll çakışmalarını azaltır ve uygulamalarınızı daha güvenilir ve daha kolay dağıtılır hale getirir. Çoğu durumda bir yükleyebilirsiniz. NET tabanlı uygulama yalnızca dosyalarını hedef bilgisayara kopyalayarak. Daha fazla bilgi için bkz . Derleme bildirimi.

Derlemeye başvuru ekleme

Bir uygulamada derleme kullanmak için buna bir başvuru eklemeniz gerekir. Bir derlemeye başvurulduktan sonra, ad alanlarının tüm erişilebilir türleri, özellikleri, yöntemleri ve diğer üyeleri, kodu kaynak dosyanızın bir parçasıymış gibi uygulamanız tarafından kullanılabilir.

Not

.NET Sınıf Kitaplığı'ndan derlemelerin çoğuna otomatik olarak başvurulur. Bir sistem derlemesine otomatik olarak başvurulmuyorsa, aşağıdaki yollardan biriyle bir başvuru ekleyin:

  • .NET ve .NET Core için, derlemeyi içeren NuGet paketine bir başvuru ekleyin. Visual Studio NuGet Paket Yöneticisi kullanın veya derleme için .csproj veya .vbproj projesine packagereference<> öğesi ekleyin.
  • .NET Framework için, Visual Studio'daki Başvuru Ekle iletişim kutusunu kullanarak veya C# veya Visual Basic derleyicileri için komut satırı seçeneğini kullanarak -reference derlemeye bir başvuru ekleyin.

C# dilinde, aynı derlemenin iki sürümünü tek bir uygulamada kullanabilirsiniz. Daha fazla bilgi için bkz. extern diğer adı.

Başlık Açıklama
Derleme içerikleri Bir derlemeyi oluşturan öğeler.
Derleme bildirimi Derleme bildirimindeki veriler ve derlemelerde nasıl depolandığı.
Genel bütünleştirilmiş kod önbelleği GAC'nin derlemeleri depolama ve kullanma şekli.
Tanımlayıcı adlandırılmış derlemeler Güçlü adlandırılmış derlemelerin özellikleri.
Derleme güvenliği hakkında dikkate alınması gerekenler Güvenlik derlemelerle nasıl çalışır?
Derleme sürümü oluşturma .NET Framework sürüm oluşturma ilkesine genel bakış.
Derleme yerleştirme Derlemelerin bulunacağı yer.
Derlemeler ve yan yana yürütme Çalışma zamanının veya derlemenin birden çok sürümünü aynı anda kullanın.
Dinamik metotları ve bütünleştirilmiş kodları yayma Dinamik derlemeler oluşturma.
Çalışma zamanı derlemeleri nasıl bulur? .NET Framework çalışma zamanında derleme başvurularını nasıl çözümlemektedir?

Başvuru

System.Reflection.Assembly

Ayrıca bkz.