MSMVPS.COM
The Ultimate Destination for Blogs by Current and Former Microsoft Most Valuable Professionals.

Publisher Policy File & Assembly

Düsünkü bir .NET bileseni gelistirdiniz, ve bu bileseni bir çok müsteriniz kendi uygulamalarinda kullaniyor. Olusturdugunuz bu bileseninde birden fazla uygulamada ortak kullanilmasini hedefleyerek GAC(Global Assembly Cache)'e yüklediniz.  Bu bilesenin ilerleyen bir zamanda yeni versiyonunu gelistridiginizde ne yaparsiniz? Iki secenek var: 1 - Bilesenle birlikte bu bilesenleri kullanan bütün uygulamalari da yeniden paketleyrek sifirdan kurulum yapmak 2 - Sadece üzerinde degisiklik yaptiginiz bilesenin yeni versiyonunu dagitarak uygulamalarin artik bu yeni bileseni kullanmalarini saglamak. Herhalde herkes 2. seçenegi seçecektir.

Peki bu islemi nasil yapabiliriz? Çözüm çok basit, .NET in Publisher Policy denilen Assembly lerini kullanacagiz. Publisher Policy isimli assembly GAC'a yüklenen özel assembly olup normal .net assemblylerinin yönlendirilmesini saglar; Söyle ki Publisher policy sayesiden eski versiyonlu assembly'ye  uygulamalardan yapilan referanslar yeni versiyonlu assembly' e yönlendirilir.

Isterseniz adim adim bu islemi nasil yapacagimizi görelim : Öncelikle Asagidaki gibi publisher policy file olusturulur ki bu dosya XML tabanli bir dosyadir.

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
       <dependentAssembly>
         <assemblyIdentity name="myAssembly"
                           publicKeyToken="5dsa2e0X54g"
                           culture="en-us" />
         <bindingRedirect oldVersion="1.0.0.0"
                          newVersion="2.0.0.0"/>
       </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>

Ardindan AL yani Assembly Linker araci kullanilarak Publisher Policy Assembly si olusturulur. Bunun için sn.exe araciyla olusturulmus bir strong name dosyasina da ihtiyacimiz olacak.. Asagidaki formatta komut çalistirilir.

al /link:Publisher Policy File /out:Publisher Policy Assembly File /keyfile:
Strong Name Dosyasi

Örnek Kullanim

al /link:publisherfile.config  /out:policy.1.0.AssemblyIsmi.dll  /keyfile:sn.snk

Burada dikkat edilmesi gereken nokte out parametresinde verilen Publisher Policy Assembly isminin formatidir. Bu format mutlaka asagidaki gibi olmalidir.

policy.VersiyonMajorNo.VersionMinorNo.AssemblyIsmi.dll

Son adim olarak ise olusan Publisher Policy Assembly gacutil yardimiyla GAC'a yüklenir :

gacutil /i policy.1.0.AssemblyIsmi.dll


Posted Nov 04 2004, 08:53 PM by sefer

Add a Comment

(required)  
(optional)
(required)  
Remember Me?


Copyright © is the original authors. Blog site is an independent site not sponsored by Microsoft. The Yoda blog server and the Brianna SQL server would like to thank www.ownwebnow.com and www.exchangedefender.com. They wouldn't be here and broadcasting without the generosity of Vlad Mazek and his companies.

Powered by Community Server (Commercial Edition), by Telligent Systems