.net DLL程序集中打包另外一個DLL

項目中作了一個通用組件的類庫,類庫中引用了幾個第三方組件(DLL),組件發佈給同事使用時,須要同時將這幾個第三方的DLL一併複製過去,而後添加相關組件的引用。ide

如何可以將這些第三方的DLL直接打包到個人組件中,而不暴露給調用者,首先想到的是將DLL包裝成「嵌入的資源」,而這種方案須要在首先調用將資源程序自動解成物理文件,其結果仍舊是暴露了第三方組件。函數

後來找到Ilmerge這個工具,該工具是微軟官方提供的程序集合並工具,使用方法:工具

安裝後,CMD進入安裝好的目錄,打命令:測試

ilmerge Janet.DTest.Lib.dll AT.Lib.dll /ndebug /out:Janet.DTest.Lib2.dlldebug

其中Janet.Dtest.Lib.dll是個人組件名稱,AT.Lib.dll是第三方組件,Janet.Dtest.Lib2.dll是合併後的文件blog

在Janet.DTest.Lib中引用了AT.Lib組件,並調用了其中的函數,以下圖所示,兩個組件引用關係:資源

 image

作一個測試的項目,直接引用生成後的Janet.DTest.Lib2.dllget

 image

debug目錄,生成結果,只有Janet.Dtest.Lib2.dll文件,沒有其餘第三方組件的DLL,測試運行直接經過。it

 image

注:Janet.Dtest.Lib2.dll文件名稱能夠本身改,也能夠在生成時指定生成的目錄。class

相關文章
相關標籤/搜索