將ILMerge全自動化,在每次編譯時全自動整併DLL
在開發專案的時候,大家應該會使用到很多外部的DLL函式庫,如果涉及到自己開發完成的DLL要被別人引用時,此時就會遭遇到把各家DLL打包成單一DLL檔案的需求,此時微軟本家的ILMerge自然是首選了。ILMerge的CLI介面其實也沒太複雜,煩人的是每次專案有修正,就要「記得」再額外下一次指令將專案引用的DLL全部打包,這樣的作法不免煩人,是否有更懶惰的作法?
在VisualStudio每次編譯的時候,重新整併成單一DLL
在NuGet有一個套件名為「MSBuild.ILMerge.Task」的套件可以解決這樣的問題,非常的好用,以下是安裝的步驟:
Step 1. 在Visual Studio中的DLL類別專案上點選右鍵,選擇「管理NuGet套件」,然後在搜尋框打入MSBuild.ILMerge.Task,然後再點選「安裝」。
Step 2. 在方案總管視窗中,你的DLL類別專案下會出現兩個檔案:ILMerge.props、ILMergeOrder.txt,看看就好,沒有特別需求就不需要去動他。
Step 3. 之後每次點選執行,VS會在編譯時期自動化將你這個專案的DLL自動整併成單一DLL檔案了,簡單完成收工。
補充說明
這個做法應該是目前我認知中最懶惰的ILMerge作法,連下載安裝ILMerge這個動作都省了,缺點應該是沒辦法因地制宜的調整一些參數,這部分等待日後有遭遇到再來研究。