c 動態載入解除安裝DLL的方法

2021-09-08 18:31:25 字數 795 閱讀 5503

這篇文章介紹了c#動態載入解除安裝dll的方法,有需要的朋友可以參考一下

c#中通過反射可以方便的動態載入dll程式集,但是如果你需要對dll進行更新,卻發現.net類庫沒有提供解除安裝dll程式集的方法。在.net 中,加入了應用程式域的概念,應用程式域是可以解除安裝的。也就是說,如果需要對動態載入的dll程式集進行更新,可以通過以下方法解決:

新建乙個應用程式域,在該應用程式域中動態載入dll,然後可以解除安裝掉該應用程式域。該應用程式域被解除安裝的時候,相關資源也會被**。

要想這樣實現,就要讓你程式的currentdomain和新建的newdomain之間進行通訊,穿過應用程式域的邊界。從網上找到了某大牛的解決方法,抄下來留給自己看吧: 

using

system;

using

system.collections.generic;

using

system.text;

using

system.threading;

using

system.reflection;

namespace

unloaddll

} class

proxyobject : marshalbyrefobject

public

bool invoke(string fullclassname, string methodname, params

object args)

} /*何問起 hovertree.com

*/}

注意:推薦:

C 動態載入解除安裝 DLL

我最近做的軟體,需要檢測dll或exe是否混淆,需要反射獲得類名,這時發現,c 可以載入dll,但不能解除安裝dll。於是在網上找到乙個方法,可以動態載入dll,不使用時可以解除安裝。我在寫乙個wpf 程式,發現可以通過assembly.load載入 dll,但是如何解除安裝dll?下面就來說下如何...

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...