Genel Derleme Önbelleği
Not
Bu makale .NET Framework'e özgüdür. .NET 6 ve sonraki sürümleri de dahil olmak üzere daha yeni .NET uygulamaları için geçerli değildir.
Ortak Dil Çalışma Zamanı'nın yüklü olduğu her bilgisayarda Genel Bütünleştirilmiş Kod Önbelleği adlı makine genelinde bir kod önbelleği vardır. Genel Bütünleştirilmiş Kod Önbelleği, bilgisayardaki birkaç uygulama tarafından paylaşılacak şekilde özel olarak belirlenmiş derlemeleri depolar.
Derlemeleri yalnızca gerektiğinde Genel Derleme Önbelleğine yükleyerek paylaşmalısınız. Genel bir kılavuz olarak, derleme bağımlılıklarını özel tutun ve bir derlemenin açıkça paylaşılması gerekmediği sürece derlemeleri uygulama dizininde bulun. Buna ek olarak, derlemeleri COM birlikte çalışma veya yönetilmeyen kod için erişilebilir hale getirmek için Genel Derleme Önbelleği'ne yüklemek gerekmez.
Not
Bir derlemeyi Genel Derleme Önbelleğine açıkça yüklemek istemediğiniz senaryolar vardır. Bir uygulamayı oluşturan derlemelerden birini Genel Bütünleştirilmiş Kod Önbelleği'ne yerleştirirseniz, artık uygulama dizinini kopyalamak için xcopy komutunu kullanarak uygulamayı çoğaltabilir veya yükleyemezsiniz. Derlemeyi Genel Derleme Önbelleği'nde de taşımanız gerekir.
Bir derlemeyi Genel Derleme Önbelleğine dağıtmanın iki yolu vardır:
Genel Bütünleştirilmiş Kod Önbelleği ile çalışmak için tasarlanmış bir yükleyici kullanın. Bu, derlemeleri Genel Derleme Önbelleğine yüklemek için tercih edilen seçenektir.
Windows SDK tarafından sağlanan Genel Derleme Önbelleği aracı (Gacutil.exe) adlı bir geliştirici aracı kullanın.
Not
Dağıtım senaryolarında, Derlemeleri Genel Derleme Önbelleğine yüklemek için Windows Installer'ı kullanın. Genel Bütünleştirilmiş Kod Önbelleği aracını yalnızca geliştirme senaryolarında kullanın çünkü Windows Installer kullanılırken derleme başvuru sayımı ve diğer özellikleri sağlamaz.
.NET Framework 4'ten başlayarak, Genel Derleme Önbelleği'nin varsayılan konumu %windir%\Microsoft.NET\assembly'dır. .NET Framework'ün önceki sürümlerinde varsayılan konum :%windir%\assembly.
Yöneticiler genellikle yazma ve yürütme erişimini denetlemek için bir erişim denetim listesi (ACL) kullanarak systemroot dizinini korur. Genel Bütünleştirilmiş Kod Önbelleği systemroot dizininin bir alt dizinine yüklendiğinden, bu dizinin ACL'sini devralır. Genel Derleme Önbelleği'nden yalnızca Yönetici ayrıcalıklarına sahip kullanıcıların dosyaları silmesine izin verilmelidir.
Genel Derleme Önbelleğinde dağıtılan derlemelerin tanımlayıcı bir adı olmalıdır. Bir derleme Genel Bütünleştirilmiş Kod Önbelleğine eklendiğinde, bütünleştirilmiş kodu oluşturan tüm dosyalarda bütünlük denetimleri gerçekleştirilir. Önbellek, örneğin bir dosya değiştiğinde ancak bildirim değişikliği yansıtmadığında bir bütünleştirilmiş kod üzerinde oynanmadığından emin olmak için bu bütünlük denetimlerini gerçekleştirir.