Derlemeleri tasarım zamanında çözme

Başvuru Ekle iletişim kutusunun .NET sekmesi aracılığıyla bir derlemeye başvuru eklediğinizde, başvuru bir ara başvuru derlemesine işaret eder; yani tüm tür ve imza bilgilerini içeren ancak herhangi bir kod içermesi gerekmeyen bir derlemedir. .NET sekmesinde, .NET Framework'teki çalışma zamanı derlemelerine karşılık gelen başvuru derlemeleri listelenir. Ayrıca, üçüncü taraflar tarafından kullanılan kayıtlı AssemblyFoldersEx klasörlerindeki çalışma zamanı derlemelerine karşılık gelen başvuru derlemelerini listeler.

Çoklu hedefleme

Visual Studio, .NET Framework'ün birden çok sürümünde çalışan .NET Framework sürümlerini hedeflemenize olanak tanır. Yeni bir .NET Framework sürümü yayınlandığında, Framework bir hedefleme paketi kullanılarak yüklenebilir ve Visual Studio'da otomatik olarak hedef olarak gösterilir.

Tür çözümlemesi nasıl çalışır?

Çalışma zamanında CLR, GAC'ye, bin dizinine ve yoklama yollarına bakarak derlemedeki türleri çözümler. Bu, füzyon yükleyicisi tarafından işlenir. Peki, füzyon yükleyicisi ne aradığını nasıl biliyor? Uygulamanın oluşturulduğu tasarım zamanında yapılan bir çözünürlüğe bağlıdır.

Derleme sırasında, derleyici başvuru derlemelerini kullanarak uygulama türlerini çözümler. .NET Framework 2.0, 3.0, 3.5, 4, 4.5 ve 4.5.1 sürümlerinde, .NET Framework yüklendiğinde başvuru derlemeleri yüklenir.

Başvuru derlemeleri, .NET Framework SDK'sının karşılık gelen sürümüyle birlikte gelen hedefleme paketi tarafından sağlanır. Çerçevenin kendisi yalnızca çalışma zamanı derlemelerini sağlar. Uygulama oluşturmak için hem .NET Framework'ü hem de ilgili .NET Framework SDK'sını yüklemeniz gerekir.

Belirli bir .NET Framework'ünü hedeflediğinizde, derleme sistemi hedefleme paketindeki başvuru derlemelerini kullanarak tüm türleri çözümler. Çalışma zamanında, fusion yükleyicisi bu türleri genellikle GAC'de bulunan çalışma zamanı derlemelerine çözümler.

Başvuru derlemeleri kullanılamıyorsa, derleme sistemi çalışma zamanı derlemelerini kullanarak derleme türlerini çözümler. GAC'deki çalışma zamanı derlemeleri ikincil sürüm numaralarıyla ayırt edilmediğinden, çözümlemenin yanlış derlemeye yapılması mümkündür. Bu durum, örneğin sürüm 3.0 hedeflenirken .NET Framework sürüm 3.5'te kullanıma sunulan yeni bir yönteme başvurulsa oluşabilir. Derleme başarılı olur ve uygulama derleme makinesinde çalışır, ancak sürüm 3.5 yüklü olmayan bir makineye dağıtıldığında başarısız olur.

Artık .NET Framework SDK'sı ile birlikte gelen hedefleme paketi, yeniden dağıtım (yeniden dağıtım) listesi olarak adlandırılan, Framework'ün bu sürümündeki tüm çalışma zamanı derlemelerinin listesini içerir ve derleme sisteminin türleri derlemenin yanlış sürümüne karşı çözümlemesini imkansız hale getirir.