나는 C#으로 간단한 앱을 가지고있다. 나는 DLL이 "내부"exe 파일이되고 싶습니다. 어떻게해야합니까?DLL을 exe로 빌드하도록 강제로하는 방법은 하나뿐입니다.
답변
ILMerge하면 페이지가
에 대한 약간의 오해의 소지가있다 찾고있는 정확하게 수행, ILMerge는 새로운 와 함께 잘 작동합니다 그 actual webpage
ILMerge 당 V3 및 V4 어셈블리에서 작동 .NET 버전. 옵션을 사용하십시오./targetplatform : v4 ,. 버전 3.5의 경우 대상 플랫폼을 설정하는 데 이 필요하지 않지만 디렉토리는/lib 옵션으로 v3.5 프레임 워크 디렉토리를 추가해야 거기에서 어셈블리를 찾을 수 있습니다. (그들이 GAC에있는 경우, 경우에는 찾을 수 있습니다.)ILMerge를 v4.0 런타임에서 실행하려면이 구성 파일을 사용하십시오.
당신이 다른 대답에 질문에서 사용 어떻게 대답하기 위해
사용법 : ilmerge [/ lib 디렉토리 : 디렉토리] * [/ 로그 [: 파일 이름] [/[/ 지연]] [/ 내재화 [: 파일 이름]] : (라이브러리 | exe | winexe)] [닫힘] [/ nedbug] [/ ver : 버전] [/copyattrs [/ allowMultiple]] [/ xmldocs] [/ attr : 파일 이름] [/ ta rgetplatform : [,] |/v1 | /v1.1 |/v2 |/V4] [/ useFullPublicKeyForReferences] [/ 와일드]/zeroPe 종류] [/ allowDup : 형식] */연합]/정렬 : N] /아웃 : 파일명 [...]
그래서 ilmerge /out:Combined.exe mainFile.exe otherDll.dll
사건에 대한 기본값의 대부분은
@scott DLL은 다른 소스에서 이미 빌드되었습니다 –
@herrow : 최신 버전은 .NET의 어떤 버전을 사용하고 있습니까? 응용 프로그램이 무엇입니까? –
@reed winforms 버전 3.5NET –
ILMerge는 .NET 어셈블리에 대해이 작업을 수행 할 수 괜찮을 것 같은 -가 (예 : WPF 어셈블리 등) 어셈블리의 특정 유형의 몇 가지 제한 사항이 있지만.
또는 use the assembly as a resource and load it on demand을 사용하거나 어셈블리 병합을 지원하는 여러 가지 상용 obfuscator 중 하나를 사용할 수 있습니다. 많은 타사 옵션이 더 정교한 depedency 병합 및/또는 종속성 포함을 지원합니다. 좋은 예가 두 가지 옵션을 모두 지원하는 SmartAssembly입니다.
+1. 너는 나를 다시 때렸다! 인생의 새로운 목표는 리드 코세이보다 빨리 타자를 치는 것입니다! ;-) – David
@ree DLL이 이미 다른 소스에서 빌드되었습니다 –
@herrow : 어떤 유형의 DLL입니까? NET Framework (v?) –
dll을 빌드하거나 다른 소스에서 의존하고있는 항목입니까? – Tim
@tim 그 anotehr 소스에서 –
왜 이것을해야할까요? –