ILmerge – C# için Dll Tool

Eğer C#’ta uygulama geliştiriyorsanız ve bunu benim gibi sadece Visual Studio kullanarak yapıyorsanız, sizde programınızı yazdıktan sonra oluşan dosya yığınından bir hayli sıkılmış olmalısınız. Tabi çoktan bu dosya yığınından hangilerinin sizin için yararlı hangilerinin sizin için gereksiz oluğunu anlamışsınızdır. Çoğundan kurtulsanızda ne yazıkki projenizde kullandığınız Dll’lerden kurtulamıyorsunuz. İşte tam bu noktada Microsoft’un ILmerge toolu bize yardımcı oluyor.

Öncelikle ILmerge sizi sadece DLL kalabalığından kurtardığını belirtmek istiyorum. Yoksa sizin o dll’e olan bağımlılığınızı gidermiyor. Sadece çalıştırılabilir dosyanızla, bu dosyada kullandığınız DLL’i birleştiriyor, adından da anlayacağınız üzere merge ediyor.

İlk olarak toolumuzu indirelim. İndirme işleminizi bu linkten gerçekleştirebilirsiniz. Dosyamızı indirdikten sonra kurulumu gerçekleştiriyoruz.

Eğer kurulum ayarlarını değiştirmediyseniz ilmerge.exe dosyamız, %PROGRAMFILES%/Microsoft/ILMerge yolunun altında yer alıyor. Daha sonra  ise geliştirdimiz C# çalıştırılabilir dosyasını ve ilgili DLL’leri bir klasörün içerisine kopyalıyoruz. Benim kullanacağım örnek uygulamada, zaten hazırda bulunan bir MotorolaReaderDemo.exe dosyası ve bu çalıştırılabilir dosyanın kullandığı log4net.dll ve Symbol.RFID3.Host.dll DLL’leri bulunmakta.

Şimdi bu dosyaları ve ilgili config dosyalarını başka bir klasöre alıp birleştirme işlemine başlayacağım. Bunun için, dosyaları kopyaladığım klasörün içerisinde aşağıdaki komutu çalıştırıyorum:

  • “C:Program FilesMicrosoftILMergeILMerge.exe” /out:Test.exe MotorolaReaderDemo.exe log4net.dll Symbol.RFID3.Host.dll

Eğer kodunuzda bir hata yoksa ve DLL’ler bu iş için uygunsa, yaklaşık input dosyalarınızın toplam boyunda yeni bir çalıştırılabilir dosya oluşacaktır. Bu dosyayı DLL dosyalarınız olmadan istediğiniz gibi çalıştırabilirsiniz.

Fakat şimdiden söylemeliyim bazı DLL’ler, Xstream.Core.dll gibi, bu işlem için uygun değiller. Nedenini bende anlayamadım. Az önce çalıştırdığınıza benzer bir komut çalıştırdığınızda beklenmedik bir durum oluşuyor.

Son Olarak

Son olarak şunu söylemek istiyorum. Bildiğiniz gibi Visual Studio uygun çalıştırılabilir dosyalarada referans vermenize olanak sağlıyor. İsterseniz ILMerge.exe çalıştırılabilir dosyasını projenize ekleyipte kullanabilirsiniz. Hem bu yolla tüm dll’li çalıştırılabilir dosyanıza gömmenizde gerekmeyebilir. Bunun nasıl yapılacağı ve ne tür fonksiyonların size sağlandığını, %PROGRAMFILES%/Microsoft/ILMerge klasörünün içindeki ILMerge.doc dosyasında bulabilirsiniz.

End Of Line