程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> .NET程序集多個DLL合並成一個DLL

.NET程序集多個DLL合並成一個DLL

編輯:關於.NET

多個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"

或者 C:\Program Files (x86)\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/

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved