我們需要發布的exe檔案很多時候都可能會依賴於一堆鬆散的dll,如果想在發布 的時候只提供exe檔案,而不想把一大堆dll一起放在和exe同乙個資料夾下,是有方法的,該方法由clr via c#作者提出,我在實踐的過程中遇到的幾點問題,現在記錄下總體的流程和該注意的事項。
1.開啟vs,新建類庫,使用預設的classlibrary1名稱。
2.在class1中新增乙個公開的方法:hellowrold,並且返回乙個字串。
1.新增classlibrary1dll的引用:
2.把classlibrary1複製到專案中,右鍵dll,選擇生成方式為:嵌入的資源
3.開啟form1的後台**,修改成:
public4.使用作者提供的**,原理就是:繫結在應用程式發生程式集解析失敗的時候觸發的事件,在繫結方法中獲取自身exe的資源,並且載入。開啟program類,修改成:partial
class
form1 : form
}
static5.測試class
program
};newform1());}}
找到bin目錄下,把exe檔案拷貝到桌面或者其他地方(沒有依賴的dll,這裡是沒有classlibrary1.dll的地方),執行。
大功告成!
注意事項:
塞。
下面提供的是winform和wpf的示例原始碼:
如何將鬆散的dll打包進需要發布的exe
我們需要發布的exe檔案很多時候都可能會依賴於一堆鬆散的dll,如果想在發布的時候只提供exe檔案,而不想把一大堆dll一起放在和exe同乙個資料夾下,是有方法的,該方法由clr via c 作者提出,我在實踐的過程中遇到的幾點問題,現在記錄下總體的流程和該注意的事項。1.開啟vs,新建類庫,使用預...
C 將dll打包進exe dll靜態引用
1 在專案中建立資料夾並將需要打包的dll放進資料夾中 這裡我建立了乙個資料夾 res並將需要打包的dll檔案 a.dll 新增進此資料夾中。vs中設定dll檔案的屬性 生成操作 為 嵌入的資源 2 在exe的入口或者窗體的建構函式中新增如下 新增程式集解析事件 system.reflection....
打包DLL檔案需要注意的東西!
1 對於不同vs平台打包的dll是不能共用的 例如 vc120核心打包的opencv是無法在vc100核心上執行的,其否則在執行時會出錯。這就要求使用對於的opencv版本。或者在vs整合環境下安裝 兩個核心,例如vc100跟vc120。一般在安裝vs的時候會自己帶乙個核心。其中為 其中vc10是適...