項目中做了一個通用組件的類庫,類庫中引用了幾個第三方組件(DLL),組件發(fā)布給同事使用時,需要同時將這幾個第三方的DLL一并復(fù)制過去,然后添加相關(guān)組件的引用。
站在用戶的角度思考問題,與客戶深入溝通,找到咸陽網(wǎng)站設(shè)計與咸陽網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、申請域名、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋咸陽地區(qū)。
如何能夠?qū)⑦@些第三方的DLL直接打包到我的組件中,而不暴露給調(diào)用者,首先想到的是將DLL包裝成“嵌入的資源”,而這種方案需要在首先調(diào)用將資源程序自動解成物理文件,其結(jié)果仍舊是暴露了第三方組件。
后來找到Ilmerge這個工具,該工具是微軟官方提供的程序集合并工具,使用方法:
安裝后,CMD進(jìn)入安裝好的目錄,打命令:
ilmerge Janet.DTest.Lib.dll AT.Lib.dll /ndebug /out:Janet.DTest.Lib2.dll
其中Janet.Dtest.Lib.dll是我的組件名稱,AT.Lib.dll是第三方組件,Janet.Dtest.Lib2.dll是合并后的文件
在Janet.DTest.Lib中引用了AT.Lib組件,并調(diào)用了其中的函數(shù),如下圖所示,兩個組件引用關(guān)系:
做一個測試的項目,直接引用生成后的Janet.DTest.Lib2.dll
debug目錄,生成結(jié)果,只有Janet.Dtest.Lib2.dll文件,沒有其他第三方組件的DLL,測試運(yùn)行直接通過。
注:Janet.Dtest.Lib2.dll文件名稱可以自己改,也可以在生成時指定生成的目錄。