天天看點

使用.net反射機制實作 “熱”更新動态庫(dll檔案)

因為考慮性能能方面的問題,一般名額在系統開啟時會被預先加載到記憶體,但新建立的名額需要加載到記憶體,已有名額需要更新也需要覆寫原dll檔案。新建立的名額很容易就放到名額“庫”(名額dll檔案存放的目錄),但要覆寫原dll檔案就不容易了,原因是dll檔案被其他程式占用了。

其實檔案被其他程式占用的情況我們經常遇到,主要是其他程式在使用檔案時沒有釋放檔案的句柄,從這裡入手不能發現解決方法,就是把檔案加載到記憶體,并且釋放檔案句柄。

将原加載動态庫的代碼:

改成:

參考: http://guangboo.org/2012/06/21/update-net-dll-file-without-restart-system