簡體   English   中英

在c#winforms中動態地引用dll

[英]Dynamically un referenc a dll in c# winforms

我有一個winform c#app。

我可以使用[web方法]來檢查我的客戶端winform應該使用的DLL的版本。 我也可以下載它。 但是,如果我復制舊的DLL,我將收到一個錯誤,指出該文件正在使用中。 我曾預料到這一點。

有沒有辦法從我運行的winform應用程序卸載此DLL,復制DLL並重新加載它?

我不想為我的更新程序使用boot-strapper,它可能需要停止並重新啟動我的應用程序。

如果我可以卸載我的DLL,所有這些都將過時。

我找了很久,找不到任何東西。 在我退休之前,我想我會在這里發布問題。

謝謝

PS我可以發布代碼,顯示如何在代碼中加載DLL和從它生成的錯誤,但它是開放的知識,並沒有添加到這個問題。

有沒有辦法從我運行的winform應用程序卸載此DLL,復制DLL並重新加載它?

不是在大多數情況下。 在托管應用程序中卸載DLL的唯一方法是卸載整個AppDomain。 這通常意味着您需要非常小心如何使用程序集(您不能直接引用並正常使用它)。

我不想為我的更新程序使用boot-strapper,它可能需要停止並重新啟動我的應用程序。

這是最常用的方法。 在應用程序中完成這項工作實質上是將引導程序構建到應用程序本身(在其自己的AppDomain中),並使用程序集卸載/重新啟動AppDomain。 這通常是更多的工作,就像單獨的引導程序應用程序一樣中斷。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM