Nasıl yapılır: Yayımcı İlkesi Oluşturma

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:

  1. Yayımcı ilkesi dosyası oluşturun.

  2. Yayımcı ilkesi derlemesi oluşturun.

  3. 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.configyayı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:anycpuoluş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.

Ayrıca bkz.