Irmante Astalavista

Simsalabim!!!
Blog ini bercerita tentang dunia IT, ilmu kebumian, dan lain-lain.

Monday, January 12, 2009

Could not load file or assembly dan ILMerge

Salah Satu kendala yang mungkin muncul bilamana kita membuat turunan Dynamic Link Library (DLL) dari DLL lain adalah munculnya penyakit 'klasik' ASP.NET yaitu could not load file or assembly (CNLFOA). Artinya, DLL yang terkait dengan error tersebut tidak ditemukan, padahal kita telah menempatkannya dalam direktori BIN atau root. Dikatakan bahwa metode ini tidak berjalan pada beberapa system environment, tetapi yang mengherankan masalah ini terkadang muncul dadakan, kadang hilang sendiri, dst pada environment yang sama bahkan dari sebuah website yang sudah live 2 tahun. Kenapa saya katakan klasik, hal ini disebabkan karena penyakit ini belum sembuh total meski sudah berlangsung sejak VS 2005 hingga VS 2008SP1 yang paling baru.

Ini sudah menghabiskan hampir sebulan sebelum akhirnya saya tanya sama yg buat DLL tersebut. Saya telah mencoba banyak saran dari internet dan gagal maning gagal maning. Mungkin terlalu telat bertanya ke prinsipal, tapi saya akui saya emang newbie di ASP.NET 2008 dan biasa bermain sebagai seorang copy paste programming :D. Masalah CNLFOA ini membuat saya belajar banyak tentang windows form yang dimainkan pada web, Global Assembly Cache, struktur Web.Config, Il-Merge, strong name, console Visual Studio, dst. Saya baru tau juga, ternyata belum tentu masalah CNLFOA ini dialami oleh orang2 yang bermain dengan .NET > 2th.

Balik lagi ke solusinya. Salah satu solusi yang saya dapatkan dan ingin saya sharing adalah menggabungkan beberapa DLL, termasuk DLL yang tidak ditemukan tersebut kedalam satu DLL baru. Dengan demikian maka DLL baru tersebut telah berisi DLL class yang 'hilang' ketika menjalankan web tersebut.
Tools termudah untuk menggabungkannya adalah menggunakan ILMerge-GUI.

Tools ini jauh lebih mudah penggunaannya daripada IL-Merge.exe yang musti diketik di console Visual Studio. Selain itu, tools ini memudahkan kita untuk menempelkan stongname key, dari sebuah DLL tanpa strongname, sehingga DLL bisa kita taruh di GAC sehingga dapat digunakan oleh bebarapa aplikasi web pada server yang sama.

Selamat mencoba.
[irmant]

Labels:


0 Comments:

Post a Comment

<< Home