多個DLL合並成一個DLL


多個DLL合並成一個DLL,把DLL合並到Exe中的解決方案

1:) 下載 http://download.microsoft.com/download/1/3/4/1347C99E-9DFB-4252-8F6D-A3129A069F79/ILMerge.msi

2:) 開始-》運行 -》 "cmd" -> "cd C:\Program Files\Microsoft\ILMerge"

3:)

3.1、合並file1.dll、file2.dll到destination.dll  
   ILmerge /ndebug /target:dll /out:C:\destination.dll /log C:\file1.dll C:\file2.dll 

        注:

        1:) 其中 "/out:C:\destination.dll" 為合並后的 dll目錄及名稱

        2:) "C:\file1.dll C:\file2.dll "  為要合並的名稱


3.2、合並file1.dll、file2.dll以及myApp.exe到newApp.exe  
       ILmerge /ndebug /target:winexe /out:C:\newApp.exe /log C:\myapp.exe C:\file1.dll C:\file2.dll 

       注:

   1:) 合並為exe時,myapp.exe 必須寫在file1.dll、file2.dll 前面

Project=>Properties=>Build Events=>Edit Post-build..輸入以下命令行

rem 據當前的exe和dll合關成一個.all.exe文件。
"$(ILMergeDir)\ILMerge.exe" /out:"$(TargetDir)$(TargetName).all.exe" "$(TargetDir)$(TargetName).exe" "$(TargetDir)*.dll" /target:exe /targetplatform:v4,C:\Windows\Microsoft.NET\Framework64\v4.0.30319 /wildcards
rem 移出所有dll文件。
del *.dll
rem 移出所有.pdb文件(除了合並后創建的.all.pdb文件)。
ren "$(TargetDir)$(TargetName).all.pdb" "$(TargetName).all.pdb.temp"
del *.pdb
ren "$(TargetDir)$(TargetName).all.pdb.temp" "$(TargetName).all.pdb"
rem 刪除初次生成未合並的exe文件。
del "$(TargetDir)$(TargetName).exe"
rem 重命名.all.pdb和.all.exe文件為初始設置對應的.pdb和.exe文件。
ren "$(TargetDir)$(TargetName).all.pdb" "$(TargetName).pdb"
ren "$(TargetDir)$(TargetName).all.exe" "$(TargetName).exe"
exit 0

參考

命令方式:http://stackoverflow.com/questions/9376/ilmerge-best-practices

GUI界面實現方式:http://ilmergegui.codeplex.com/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM