Derleme adları
Derlemenin adı meta verilerde depolanır ve derlemenin kapsamı ve bir uygulama tarafından kullanımı üzerinde önemli bir etkiye sahiptir. Tanımlayıcı adlandırılmış derleme, derlemenin adını, kültürünü, ortak anahtarını, sürüm numarasını ve isteğe bağlı olarak işlemci mimarisini içeren tam bir ada sahiptir. FullName Yüklenen derlemeler için genellikle görünen ad olarak adlandırılan tam adı almak için özelliğini kullanın.
Çalışma zamanı, derlemeyi bulmak ve aynı ada sahip diğer derlemelerden ayırmak için ad bilgilerini kullanır. Örneğin, adlı myTypes
bir tanımlayıcı adlandırılmış derleme aşağıdaki tam ada sahip olabilir:
myTypes, Version=1.0.1234.0, Culture=en-US, PublicKeyToken=b77a5c561934e089c, ProcessorArchitecture=msil
Bu örnekte tam ad, derlemenin myTypes
ortak anahtar belirteci olan bir tanımlayıcı ada sahip olduğunu, İngilizce Birleşik Devletler kültür değerine sahip olduğunu ve 1.0.1234.0 sürüm numarasına sahip olduğunu gösterir. İşlemci mimarisi , msil
işletim sistemine ve işlemciye bağlı olarak 32 bit koda veya 64 bit koda tam zamanında (JIT) derlenmiş olacağı anlamına gelir.
İpucu
Bilgiler ProcessorArchitecture
, derlemelerin işlemciye özgü sürümlerine izin verir. Kimliği yalnızca işlemci mimarisine göre farklılık gösteren bir derlemenin sürümlerini oluşturabilirsiniz, örneğin 32 bit ve 64 bit işlemciye özgü sürümler. Tanımlayıcı adlar için işlemci mimarisi gerekli değildir. Daha fazla bilgi için bkz. AssemblyName.ProcessorArchitecture.
Bir derlemedeki türleri isteyen kodun tam derleme adı kullanması gerekir. Buna tam bağlama adı verilir. .NET Framework'te derlemelere başvururken yalnızca derleme adını belirten kısmi bağlamaya izin verilmez.
.NET Framework'ünü oluşturan derlemelere yönelik tüm derleme başvuruları, derlemenin tam adını da içermelidir. Örneğin, 1.0 sürümü için System.Data .NET Framework derlemesine yapılan bir başvuru şunları içerebilir:
System.data, version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Sürüm, .NET Framework sürüm 1.0 ile birlikte gelen tüm .NET Framework derlemelerinin sürüm numarasına karşılık gelir. .NET Framework derlemeleri için kültür değeri her zaman nötrdür ve ortak anahtar yukarıdaki örnekte gösterildiği gibi aynıdır.
Örneğin, bir izleme dinleyicisi ayarlamak üzere yapılandırma dosyasına derleme başvurusu eklemek için sistem .NET Framework derlemesinin tam adını eklersiniz:
<add name="myListener" type="System.Diagnostics.TextWriterTraceListener, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="c:\myListener.log" />
Not
Çalışma zamanı, derlemeye bağlanırken derleme adlarını büyük/küçük harfe duyarsız olarak ele alır, ancak derleme adında kullanılan her büyük/küçük harf durumunu korur. Windows SDK'daki çeşitli araçlar derleme adlarını büyük/küçük harfe duyarlı olarak işler. En iyi sonuçlar için, derleme adlarını büyük/küçük harfe duyarlıymış gibi yönetin.
Uygulama bileşenlerini adlandırma
Çalışma zamanı, bir derlemenin kimliğini belirlerken dosya adını dikkate almaz. Derleme adı, sürümü, kültürü ve tanımlayıcı adından oluşan derleme kimliğinin çalışma zamanına açık olması gerekir.
Örneğin, myAssembly.dll adlı bir derlemeye başvuran myAssembly.exe adlı bir derlemeniz varsa, myAssembly.exe yürütürseniz bağlama doğru şekilde gerçekleşir. Ancak, başka bir uygulama yöntemini kullanarak myAssembly.exe yürütürse, çalışma zamanı myAssembly.exe bağlama myAssembly
isteğinde bulunurken bunun myAssembly
zaten yüklendiğini belirler.AppDomain.ExecuteAssembly Bu durumda, myAssembly.dll hiçbir zaman yüklenmez. myAssembly.exe istenen türü içermediğinden bir TypeLoadException oluşur.
Bu sorunu önlemek için, uygulamanızı oluşturan derlemelerin aynı derleme adına sahip olmadığından emin olun veya farklı dizinlerde aynı ada sahip derlemeler yerleştirin.
Not
.NET Framework'te, genel derleme önbelleğine tanımlayıcı adlı bir derleme koyarsanız, derlemenin dosya adı, .exe veya .dll gibi dosya adı uzantısı dahil olmak üzere derleme adıyla eşleşmelidir. Örneğin, bir derlemenin dosya adı myAssembly.dll ise, derleme adı olmalıdır myAssembly
. Yalnızca kök uygulama dizininde dağıtılan özel derlemeler, dosya adından farklı bir derleme adına sahip olabilir.