2011-06-16 118 views
2

在我的項目中,我使用反射和Assembly.LoadFrom()加載DLL。這是一個小的DLL,在應用程序執行期間偶爾會重新編​​譯(從源代碼)。使用Assembly.LoadFrom()加載後卸載DLL

有沒有辦法從應用程序卸載加載的DLL,以便我可以重新加載它?我嘗試重新加載它,但出現錯誤:

file in use by another program

+1

你會發現重新啓動應用程序比使用的AppDomain很容易做的。 – 2011-06-16 01:03:21

回答

0

您不能。你必須殺死程序。無法卸載.Net中的程序集。

1

如果打開文件的應用程序是自定義應用程序,那麼您可以修改它以將該DLL加載到另一個AppDomain中。當你想重新加載它時,只需拆除該AppDomain並將新的DLL加載到新的AppDomain中即可。我會看看MEF(這是做這個)看看這是否可以支持你的用例。