我最近做的軟體,需要檢測dll或exe是否混淆,需要反射獲得類名,這時發現,c#可以載入dll,但不能解除安裝dll。於是在網上找到乙個方法,可以動態載入dll,不使用時可以解除安裝。
我在寫乙個wpf 程式,發現可以通過assembly.load
載入 dll,但是如何解除安裝dll?下面就來說下如何解除安裝。
看到assembly.load
是把 dll 載入到當前程式集,這句話,我就想到了我們的主程式集和當前的不同,那麼可以載入到當前不會影響主程式。那麼如何新建乙個程式集?他是否可以解除安裝,答案是可以的。
internal
}var proxy =
假如是從 檔案載入,可以使用 loadfile
varassembly 可以獲得所有的類和方法。assembly = assembly.loadfile(file.fullname);
首先我們使用assembly.loadfile(file)
載入,再用反射獲得當前程式集,然後獲取他的所有 type ,當然我們是知道載入的 file 包含的 type,一會可以驗證使用已經載入他。
system.reflection
.assembly
.loadfile(file);
.getassemblies())
可以看到 file 包含的 type 在主程式。
const這時可以看到,我們的主程式沒有包含 file 的 type 。var proxy =
proxy.dosomething(new fileinfo(file));
c 動態載入解除安裝DLL的方法
這篇文章介紹了c 動態載入解除安裝dll的方法,有需要的朋友可以參考一下 c 中通過反射可以方便的動態載入dll程式集,但是如果你需要對dll進行更新,卻發現.net類庫沒有提供解除安裝dll程式集的方法。在.net 中,加入了應用程式域的概念,應用程式域是可以解除安裝的。也就是說,如果需要對動態載...
2018 2 13 C 動態載入解除安裝 DLL
title author date createtime categories c 動態載入解除安裝 dll lindexi 2018 2 13 17 23 3 0800 2018 2 13 17 23 3 0800 c 我最近做的軟體,需要檢測dll或exe是否混淆,需要反射獲得類名,這時發現,c...
2018 2 13 C 動態載入解除安裝 DLL
title author date createtime categories c 動態載入解除安裝 dll lindexi 2018 2 13 17 23 3 0800 2018 2 13 17 23 3 0800 c 我最近做的軟體,需要檢測dll或exe是否混淆,需要反射獲得類名,這時發現,c...