Hepimizin bildiği üzere .Net çatısı altında çalışan bütün uygulamalar dll mantığı ile çalışıyor ve biz bu dll ler üzerinden işlemler gerçekleştiriyoruz. Kendi yazdığımız uygulamalardaki referans edilen dll'ler ise Asp.Net ve Asp.Net MVC uygulamaları için "BIN" klasörü altında , masaüstü uygulamalarında da kendi bulunduğu klasörde yada sistemin PATH değişkeninde bulunan klasörlerde aranır.Eğer bu dll gerel web gerek masaüstü uygulamalarında belirttiğim dizinlerin birisinde değilse programı çalıştırdığınızda bir hata mesajı alırsınız. Bu tip durumlarda (örneğin dlll 'erinizi ayrı bir klasörde toplamak istemeniz durumunda) bir configürasyon dosyası oluştururarak bu durumun üstesinden geleblirsiniz.
WinForm uygulamalar için Visual Studioda projenize sağ tıklayarak Add --> New Item seçeneği ile bir application configuration File eklemelisiniz.Önemli bir noktayı hatırlatmalıyım. Eklemiş olduğunuz Configuration File dosyası uygulamaadı.exe.config şeklinde olmalıdır. Şimdi gelelim configuration File dosyasının içeriğine ;
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="extension;data"/>
</assemblyBinding>
</runtime>
</configuration>
Yukarıdaki xml configurasyon dosyasını biraz incelemek gerekirse bilmediğimiz sadece bir element var probing elementi.
Orda belirtilen dll dosyalarını extension ve data klasörleri içinde aramak. Eğer eğer bir setup oluşturacaksanız configrasyon dosyasının exe niz ile aynı klasörde olmasına dikkat ediniz.
Web uygulamlarında ise aşağı yukarı aynı işlem gerçekleştiriliyor.Açtığımız web projlerinde zaten bir tane configurasyon dosyası standart olarak gelmektedir. Hepimizin yakından bildiği Web.Config dosyası.
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="App_Data/Dependencies"/>
</assemblyBinding>
</runtime>
</configuration>
Aslında web.config dosyasına ekliyeceğimiz tek bir satır."<probing privatePath="App_Data/Dependencies"/>"
Yukardada aynı şekilde referans edilen dll lerimizi "App_Data/Dependencies" klasörü altında arayacak.