C 動態載入元件後如何在開發環境中除錯詳解

2022-09-26 03:06:09 字數 1839 閱讀 5314

動態載入元件

那就是簡單的assembly.load動態載入dll而以。這網上資料也有不少。基本的思路基本上就是在本地上乙個指定目錄如【plugs】存在著一堆dll檔案。主程式在初始執行時一般會把指定目錄下的dll一次性用assembly.load載入進來。只要把指定目錄變成從網路載入,或者載入指定目錄前先檢查網路上的是否有新版本。這就簡單做成個最簡單版本的熱更新。

多數網上的資料就是然後就沒有然後了。很多人就發現產品是通過動態載入元件了。但開發人員根本無法除錯啊。不能除錯就意味著開發難度大啊。出了bug我都不知程式設計客棧道怎麼查錯。難度開發就要像在正式環境那樣子不停的寫log檔案。如果這樣子的動態載入真的得不嘗失。只是簡單的動態載入對產品做出的優化可能只是5%,但對於開發效率來講這可不止減少5%的問題。當有也有不少人為了能讓元件專案能除錯都會新建乙個專案直接引用元件專案。通過這種曲線救國的方式來解決問題的。

開發環境中怎麼除錯

用vs ide開發時為什麼能夠除錯。vs ide在的操作原理還是通過ms-build來生成程式集的。只有dll存在了才能進行除錯斷點的。這我為動態載入也是載入了dll檔案了那怎麼斷點沒有效果呢。那細心的人也知道在生成程式集的時,同時還生成了乙個同名稱的pdb檔案。有興趣的朋友可程式設計客棧以在百科上找到相關資料。說白了有了這個pdb檔案才能用vs ide進行除錯斷點的。

用vs建立方案

myplatform為主專案,主要用於動態載入元件。

myplatform.standard為定義標準的介面專案。所有的基礎介面,抽像類都應該出自這個專案。

myplatform.modulehelloword為第乙個元件模組。寫**的人第乙個功能都是helloword。

定義元件規則

iplugmodule,iplugitem為每個元件模組定義好要顯示的名稱,和呼叫指定元件時入口方法。先定義了最基本功能以後再加另的功能。

實現第乙個元件模組

hellowordmodule,hellowordplug做為第乙個元件模組,實現的功能當然也是最簡單的。

實現動態載入

想動態載入元件。前兩步定義好規則和第乙個元件模組也出來了。現在到主專案平台來了。要動態載入還是要乙個元件管理功能來管理載入對應的元件模組專案。元件管理只應該有從那裡載入模組特定。按這分析。元件管理類

按照這定義好完善功能。

ide專案設定

為了方便開發除錯。對專案使用設定。

myplatform專案-》屬性-》生成-》輸出

myplatform.modulehelloword輸出為位置為元件模組載入目錄

對解決方案進行www.cppcns.com設定。右鍵屬性-》專案依賴。把元件也選上。這所講的依賴並不是主專案引用了元件專案,而是在生成主項目前先把選中的專案生成成功再生成編譯主程式設計客棧專案。

輸出效果

從專案上來看,怎麼什麼輸出資訊都沒有呢。開啟元件目錄發現什麼都沒有。原來都沒有生成元件到這個目錄。那你可能就是忘記上面提交到第三步設定。請回去看一次。

這就簡單的能動態載入了。這的思路和網上的基本上都一樣的。但發現就是不能斷點除錯。不能除錯這就是在耍流氓嘛。

修改**支援斷除錯

檢視assembly.load的方法發現有意思的過載。除了載入乙個流檔案的方法。可以發現還有三個方法是載入兩流檔案的。乙個帶有安全引數的方法。不過由於第乙個已經過時棄用,建議使用第三個方程式設計客棧法。那其實就只有兩個方法可用。那就是說在載入時能同時把pdb程式除錯資料庫也能載入了。這就能很好解決vs ide能呼叫的問題了。

改動**。載入dll檔案時判斷pdb檔案是否存在,存在則一併載入。這方法也使用在debug模式下。那正式環境一般不會把pdb檔案也發布出去。所以就走了分支。

能除錯的輸出效果

總結本文標題: c#動態載入元件後如何在開發環境中除錯詳解

本文位址:

C 動態載入元件後怎麼在開發環境中除錯

c 動態載入元件後怎麼在開發環境中除錯 那就是簡單的assembly.load動態載入 dll而以。這網上資料也有不少。基本的思路基本上就是在本地上乙個指定目錄如 plugs 存在著一堆 dll檔案。主程式在初始執行時一般會把指定目錄下的 dll一次性用 assembly.load 載入進來。只要把...

C 下反射動態載入dll後如何解除安裝?

最近在做專案的時候,遇到乙個需求,需要通過選擇的檔案,先判斷是c dll還是c dll,再判斷dll是否是我們需要的特定dll,還是別的隨便乙個dll。經過研究發現,我們可以通過反射來載入dll,如果用c 的反射機制可以正確載入dll,那麼就可以認為該dll是c 型別的,如果不能正確載入,我們再通過...

如何在vscode配置php開發環境

4.在vscode中安裝除錯外掛程式 右側欄中點選擴充套件,輸入xdebug,出來的php debug,點選安裝。在選單欄 檔案 首選項 配置,右邊新增加一行配置 php.validate.executablepath d xampp php php.exe 5.驗證是否配置成功 新建乙個資料夾ph...