Nasıl yapılır: Yayımcı İlkesi Oluşturma
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.
Derleme satıcıları, uygulamaların yükseltilen derlemeye yayımcı ilke dosyası ekleyerek derlemenin daha yeni bir sürümünü kullanması gerektiğini belirtebilir. Yayımcı ilke dosyası derleme yeniden yönlendirme ve kod temeli ayarlarını belirtir ve uygulama yapılandırma dosyasıyla aynı biçimi kullanır. Yayımcı ilkesi dosyası bir derlemede derlenip genel derleme önbelleğine yerleştirilir.
Yayımcı ilkesi oluşturmanın üç adımı vardır:
Yayımcı ilkesi dosyası oluşturun.
Yayımcı ilkesi derlemesi oluşturun.
Yayımcı ilkesi derlemesini genel derleme önbelleğine ekleyin.
Yayımcı ilkesi şeması Derleme Sürümlerini Yeniden Yönlendirme bölümünde açıklanmıştır. Aşağıdaki örnekte, bir sürümünü başka bir sürüme yönlendiren bir yayımcı ilke dosyası gösterilmektedir myAssembly
.
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="myAssembly"
publicKeyToken="32ab4ba45e0a69a1"
culture="en-us" />
<!-- Redirecting to version 2.0.0.0 of the assembly. -->
<bindingRedirect oldVersion="1.0.0.0"
newVersion="2.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
Kod tabanı belirtmeyi öğrenmek için bkz . Derlemenin Konumunu Belirtme.
Yayımcı İlke Derlemesi Oluşturma
Yayımcı ilkesi derlemesini oluşturmak için Derleme Bağlayıcısı'nı (Al.exe) kullanın.
Yayımcı ilkesi derlemesi oluşturmak için
Komut istemine aşağıdaki komutu yazın:
al /link:publisherPolicyFile /out:publisherPolicyAssemblyFile /keyfile:keyPairFile /platform:processorArchitecture
Şu komutta:
publisherPolicyFile
Bağımsız değişken, yayımcı ilkesi dosyasının adıdır.publisherPolicyAssemblyFile
bağımsız değişkeni, bu komutun sonucu olan yayımcı ilkesi derlemesinin adıdır. Derleme dosyası adı şu biçimde olmalıdır:'policy.majorNumber.minorNumber.mainAssemblyName.dll'
keyPairFile
bağımsız değişkeni, anahtar çiftini içeren dosyanın adıdır. Derleme ve yayımcı ilkesi derlemesini aynı anahtar çiftiyle imzalamanız gerekir.bağımsız değişkeni,
processorArchitecture
işlemciye özgü bir derleme tarafından hedeflenen platformu tanımlar.Not
.NET Framework 2.0'dan başlayarak belirli bir işlemci mimarisini hedefleme özelliği kullanılabilir.
.NET Framework 2.0'dan başlayarak belirli bir işlemci mimarisini hedefleme özelliği kullanılabilir. Aşağıdaki komut, adlı pub.config
yayımcı ilkesi dosyasından adlı policy.1.0.myAssembly
bir yayımcı ilkesi derlemesi oluşturur, dosyasındaki anahtar çiftini sgKey.snk
kullanarak derlemeye kesin bir ad atar ve derlemenin x86 işlemci mimarisini hedeflediğini belirtir.
al /link:pub.config /out:policy.1.0.myAssembly.dll /keyfile:sgKey.snk /platform:x86
Yayımcı ilkesi derlemesi, uygulandığı derlemenin işlemci mimarisiyle eşleşmelidir. Bu nedenle, derlemenizin değeri MSILvarsa, bu derleme ProcessorArchitecture için yayımcı ilkesi derlemesi ile /platform:anycpu
oluşturulmalıdır. İşlemciye özgü her derleme için ayrı bir yayımcı ilkesi derlemesi sağlamanız gerekir.
Bu kuralın bir sonucu, bir derlemenin işlemci mimarisini değiştirmek için, doğru işlemci mimarisiyle yeni bir yayımcı ilkesi derlemesi sağlayabilmeniz için sürüm numarasının ana veya ikincil bileşenini değiştirmeniz gerekir. Derlemeniz farklı bir işlemci mimarisine sahip olduğunda eski yayımcı ilkesi derlemesi derlemenize hizmet veremez.
Bir diğer sonuç da, .NET Framework'ün önceki sürümleri kullanılarak derlenmiş bir derleme için yayımcı ilkesi derlemesi oluşturmak için sürüm 2.0 bağlayıcısının kullanılamayacağıdır çünkü her zaman işlemci mimarisini belirtir.
Yayımcı İlkesi Derlemesini Genel Derleme Önbelleğine Ekleme
Yayımcı ilkesi derlemesini genel derleme önbelleğine eklemek için Genel Derleme Önbelleği aracını (Gacutil.exe) kullanın.
Yayımcı ilkesi derlemesini genel derleme önbelleğine eklemek için
Komut istemine aşağıdaki komutu yazın:
gacutil /i publisherPolicyAssemblyFile
Aşağıdaki komut genel derleme önbelleğine ekler policy.1.0.myAssembly.dll
.
gacutil /i policy.1.0.myAssembly.dll
Önemli
Bağımsız değişkende belirtilen özgün yayımcı ilkesi dosyası derlemeyle aynı dizinde /link
yer almadığı sürece yayımcı ilkesi derlemesi genel derleme önbelleğine eklenemez.