Global It Leader!!



 
 

VB 여러개의 EXE나 DLL 파일을 1개로 병합하는 툴

페이지 정보

작성자 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글 0건 조회 10,184회 작성일 13-12-19 21:43

본문

안녕하세요..

 
프로젝트를 개발하고 배포를 하려면 여러개의 DLL을 배포할때가 있는데 가끔 번거롭거나
ASP용 DLL을 배포할때 삽집하는 경우가 가끔 있습니다.
이럴때 EXE를 포함한 DLL을 하나로 묶어서 새로운 EXE 또는 DLL만 묶어서 하나의 파일로 만들어
배포하면 간단하게 해결할 수 있을 겁니다.. 
 
아래 툴은 이러한 작업을 해주는 툴입니다..
배포용으로는 상당히 괜찮은 것 같아 공유합니다.. 
 
근데 제가 아직 사용법을 정확하게 익히질 못해서 그런지 VS툴에서 순수하게 참조추가한 DLL과 빌드한 EXE를
병합할때는 아주 멋지게 병합되어 파일 하나가 만들어지는데 크리스탈리포트등 외부참조 DLL(C++)의 경우는
자꾸 누락이 되네요..
 
여러분이 써 보시고 크리스탈리포트용 DLL이나 외부참조 DLL 병합에 성공하신 분은 댓글로 방법 좀 알려주시면 좋겠습니다..
 
아래는 ILMerge와 윈도우용 툴 을 다운 받는 곳과 사용법을 함께 올립니다..
 
유용하게 사용하세요...  
 
 
===================================================================================================
어플리케이션의 EXE 파일이나 DLL 파일을 1개로 정리하려면?

외부의 컴퍼넌트(통상은 DLL 파일)를 이용해 .NET에서 어플리케이션을 작성하는 경우, 어플리케이션 본체(EXE 파일)의 실행에는 당연히 그것들의 DLL 파일이 필요하다. 그러나 어플리케이션을 유저에게 배포하는 경우에 파일의 수는 적은(될수 있으면 EXE 파일 1개만)편이 취급하기 쉽다.

 미국 Microsoft사가 무상으로 제공하고 있는 툴「ILMerge」를 이용하면, EXE 파일과 그 실행에 필요한 복수의 DLL 파일을 1개의 EXE 파일에 정리할 수 있다(정확하게는, ILMerge는 복수의 어셈블리를 1개의 어셈블리에 머지한다).

복수의 파일을 1개로 정리하는「ILMerge」

 ILMerge는 다음의 페이지에서 다운로드할 수 있다. 이 페이지에는 .NET Framework 2.0용과 1.1용 인스톨 패키지(.msi 파일)가 준비되어 있다.
 
 또, ILMerge에 관한 보다 상세한 정보는 다음 페이지에서 참조할 수 있다(이것은 ILMerge의 작성자인 Michael Barnett의 페이지이다).
 
 다운로드한 . msi 파일을 실행하면, 디폴트로「C:\Program Files\Microsoft\ILMerge」에「ILMerge.exe」가 인스톨 된다.
 ILMerge는 커맨드 라인에서 실행하는 콘솔 어플리케이션이기 때문에, 임의의 장소에서 실행하려면 인스톨된 디렉터리를 환경 변수「PATH」에 포함하거나, PATH로 설정되어 있는 디렉터리에 ILMerge.exe를 복사할 필요가 있다(혹은 이하에 소개하는 GUI 툴을 이용하면, Windows 어플리케이션으로서 실행할 수 있다).

ILMerge의 기본적인 사용법

 ILMerge에는 여러가지 커멘드 라인 옵션이 준비되어 있지만, 기본적인 사용법으로 커맨드 프롬프트에서 다음처럼 실행한다.
 여기서는 1개의 어플리케이션을 구성하는 3개의 파일(MainApp.exe, ConponentA.dll, ComponentB.dll)을 MergedApp.exe에 정리하려고 한다.
C:\> ILMerge /out:MergedApp.exe MainApp.exe ComponentA.dll ComponentB.dll
ILMerge의 실행예
이 예에서는 MainApp.exe는 ConponentA.dll 및 ComponentB.dll에 구현되는 클래스를 사용하고 있는 것으로 한다. /out: 옵션은 필수로써, 출력되는 EXE 파일의 파일명을 지정한다.
 덧붙여, /wildcards 옵션을 지정하면 디렉터리내의 모든 DLL 파일을「*.dll」에 따라 지정할 수 있다. 또, ILMerge는 복수의 DLL 파일을 1개의 DLL 파일로 정리할 수도 있다. 자세한 것은 ILMerge.exe와 동시에 인스톨 되는 문서를 참조해 주길 바란다.

 

=========================================
ILMerge용 GUI 툴「Gilma」
=========================================
 ILMerge는 콘솔 어플리케이션이지만, 오픈 소스로서 개발이 진행되고 있는 툴 「Gilma」를 이용하면, Windows 어플리케이션으로서 실행할 수 있다.
 Gilma는 다음의 페이지에서 다운로드할 수 있다*.
 
* 본고 집필 시점에서는, Gilma의 인스톨·패키지인「SetupGilma.msi」는 .NET Framework 1.1용이며 2.0에서는 실행할 수 없다. 2.0에서 Gilma를 이용하기 위해서는「Gilma-bin.zip」를 다운로드하고, 임의의 디렉터리에 푼다.
 다음의 화면은 Gilma에 의해 파일을 머지하려 하고 있다. Gilma 자체는「Gilma.exe」와「GilmaLogic.dll」의 2개의 파일로 구성되어 있지만, 여기에서는 그것을 1개의 파일로 정리하려 한다.

Gilma의 실행 화면
여기에서는 Gilma.exe와 GilmaLogic.dll의 2개의 파일을 Gilma1.exe에 정리하려 하고 있다.
  인스톨 되고 있는 ILMerge.exe의 패스명.
  출력되는 파일의 패스명.
  원래의 EXE 파일의 패스명.
  EXE 파일의 실행에 필요한 DLL 파일의 패스명(복수 지정가능).
  이[Merge]버튼을 클릭하면 파일의 머지를 개시한다.
 파일의 머지가 성공하면 다음과 같은 메세지가 표시된다. 덧붙여서 이 메세지는 ILMerge를/log 옵션을 붙여 실행했을 경우에 표시되는 메세지이다.
Gilma의 처리 결과 메세지
Gilma는 내부에서 ILMerge를 실행해 파일의 머지를 실시한다. 이 메세지는 /log 옵션 첨부로 실행된 ILMerge가 출력한 메세지.
 이 경우에는 Gilma1.exe가 작성된다. 그리고 이 EXE 파일은 DLL 파일(GilmaLogic.dll) 없이 실행할 수 있다.

댓글목록

등록된 댓글이 없습니다.

전체 95
게시물 검색
컴퓨터언어 목록
번호 제목 글쓴이 조회 날짜
75 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4524 02-17
74 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 7038 02-17
73 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4584 02-11
72 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4446 02-11
71 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4336 02-07
70 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4321 08-04
69 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4477 12-25
68 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11587 12-25
67 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 5439 12-24
66 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4870 12-24
65 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 5104 12-20
64 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4933 12-20
63 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 6298 12-20
62 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4895 12-20
열람중 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 10185 12-19
60 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4744 12-17
59 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 6779 12-17
58 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4642 12-16
57 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4400 12-16
56 VB no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4526 12-16