(Bongkar Aplikasi -- Update Reference) | (Add Publisher Policy)?

Created at : Feb/26/2007  
1874 Views   0 Comments

Kalau sebuah aplikasi sudah diinstal dan ternyata ditemukan bugs pada component shared assembly yang di reference atau mungkin akan menambahkan fungsionalitas baru terhadap assembly tersebut apa yang harus dilakukan untuk mengupdate reference tsb? Bongkar aplikasi --> update reference --> Build --> Uninstall aplikasi lama --> Deploy aplikasi baru?? Cara tersebut tidak efektif...Thanks to Publisher Policy which can resolve the problem...

Publisher Policy  (PP) tidak lain dan tidak bukan ialah merupakan sebuah XML file just like app.config yang di compile kedalam sebuah assembly dan disimpan di Global Assembly Cache. PP ini berisi informasi yang diberikan kepada CLR untuk redirect assembly version yang digunakan pada aplikasi yang sudah diinstal ke another assembly version di Global Assembly Cache (GAC). Misalnya aplikasi A mereference ke sebuah assembly A version 1.0.0.0 kemudian tanpa harus bongkar aplikasinya maka kita bisa redirect ke assembly A version 1.1.0.0.

Proses redirectnya melalui tahap-tahap sbb :

Cek Application Policy (app.config) --> Cek Publisher Policy --> Cek Administrator Policy (machine.config) --> Final binding result

1. CLR akan cek terlebih dahulu policy yang terdapat di dalam app.config. Didalam app.config ini kita bisa tambahkan path assembly version terntentu yang akan digunakan oleh CLR untuk mencari assembly yang di reference.

2. Kalau didalam PP terdapat perintah redirect ke assembly version tertentu maka setiting yang terdapat di app.config akan di override. Akan tetapi kalau kita tidak menginginkan app.config di override kita tinggal set <publisherPolicy apply="no" /> di app.config.

3. Kedua setting di atas tidak akan bekerja kalau didalam machine.config terdapat perintah untuk redirect ke assembly version tertentu. So this is the final binding result...

Berikut langkah pembuatan Publisher Policy nya :
1. Tambahkan aplikasi (.exe) yang akan diconfigure lewat .NET Framework Configuration Tool.

2. Klik kanan node Configured Assemblies --> Add --> Check radio button "an assembly from the list of assemblies this application uses" --> Klik button "Choose Assembly" --> Finish...

3. Pilih tab Binding Policy --> ketikkan version yang lama di textbox Requested Version --> input versi baru di textbox New version

4. Check app.config file di direktori applikasi tersebut, maka hasilnya akan seperti ini :

<?xml version="1.0"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="NwindProd10"
publicKeyToken="93d92436c407b8e6" />
<publisherPolicy apply="yes" />
<bindingRedirect oldVersion="1.0.0.0"
newVersion="1.1.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

5. Untuk membuat Publisher Policy yang akan di deploy ke GAC harus mengikuti format :

policy.majorVersion.minorVersion.AssemblyName.dll

majorVersion merupakan major number assembly version yang akan di redirect.
minorVersion merupakan minor number assembly version yang akan di redirect.
AssemblyName merupakan nama assembly yang akan diredirect.

6. Buat file policy.1.0.YourAssemblyName.config (misal major Numbernya 1, minor numbernya 0) di folder dimana assembly versi tersebut berada dengan isi yang sama dengan app.config yang ada di langkah 4.

7. Untuk generate assembly dari file .config tsb gunakan al.exe (Assembly Linker) dari .net sdk command prompt :

al /link:policy.1.0.YourAssemblyName.config/out:policy.1.0. YourAssemblyName.dll/keyfile:..\..\YourKeyFile.snk

parameter out merupakan nama file assembly yang akan kita simpan nantinya di GAC dengan asumsi key filenya sudah punya yang di generate lewat sn.exe...

8. Now the final step is only add the assembly we created from the former step to the GAC. You can use by gacutil.exe or .net framework configuration tool...Run the application...you can see that CLR redirect the assembly to the version from the application being referenced to the version you want...


[Comments]

[Write your comment]
Name (required)
URL (optional)
Example : http://www.yulianmf.com  
Comment

irtu
Input code above below (Case Sensitif) :
About Me 
Rully Yulian MF
My Name is Rully Yulian Muhammad Firmansyah. I am an IT Trainer, IT Consultant and Application Developer spesializing in Microsoft .NET technology and SQL Server database. I live in Bandung, Indonesia. My hobby is to play Guitar. [Read More...]
Top Download 
Bagaimana caranya menginstal database ketika deploying sebuah aplikasi? : Downloaded 2231 times  
Change Group,Sort Order, Filtering By Date in Crystal Reports : Downloaded 2192 times  
Simple Voice Engine Application With Sound Player Class... : Downloaded 1523 times  
DataGridView Grouping : Downloaded 1243 times  
WinForms DataGrid Paging With SqlDataAdapter : Downloaded 1232 times  
Article Category 
Links 
Award 
Certifications 
MOS 2007
MCAS
MCT
MCPD
MCTS
MCAD.NET
ASP.NET Brainbench
Native Enterprise - IT Training 
Native Enterprise Facebook Group 
My Facebook 
My LinkedIn 
Syndication (RSS 2.0) 
Powered By 
Native Enterprise News