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