2014-01-30 1 views
4

응용 프로그램 폴더/파일과 함께 전체 C# 콘솔 응용 프로그램을 하나의 실행 가능 .exe 파일로 패키지화하여 실행할 때 컴퓨터에 설치할 필요가 없도록 할 수 있습니까? 가 (별도의 하위 폴더에 번역 된 문자열) 리소스 DLL의 여지가없는 경우패키지 전체 C# 콘솔 응용 프로그램을 하나의 파일로 패키지합니까?

+0

많은 어셈블리가 포함되어 있어도 설치하지 않아도 전체 폴더를 복사 할 수 있습니다. – ElDog

+0

내 응용 프로그램에는 html/js/css 파일도 포함되어 있습니다. .exe 파일에 패키지화 할 수 있습니까? – Raskolnikoov

+0

예, 포함 된 리소스로. 이는 하나의 실행 파일에 어셈블리를 패킹하는 것보다 쉽고 일반적입니다. Matthew Watson의 대답을보십시오. – ElDog

답변

7

당신은 DLL 파일에 대해이 작업을 수행 할 ILMerge를 사용할 수 있습니다

http://research.microsoft.com/en-us/people/mbarnett/ilmerge.aspx

ILMerge입니다 여러 개의 .NET 어셈블리를 단일 어셈블리로 병합하는 데 사용할 수있는 유틸리티입니다.

다른 파일도있는 경우 프로그램에 리소스로 추가하고 런타임에 추출해야합니다.

http://support.microsoft.com/kb/319292

간단히 :

는 리소스 파일을 포함하고 실행시 압축을 해제하는 방법에 대한 자세한 내용은 여기를 참조하십시오 당신은 당신의 프로젝트에 포함 된 리소스를 추가 한 후,이 작업을 수행 :

var assembly = Assembly.GetExecutingAssembly(); 
var stream = assembly.GetManifestResourceStream("MyNamespace.MyResourceFileName"); 

// ... do something with stream, e.g. write it out to a file. 

[EDIT]

요 실제로 ILMerge를 사용하지 않고 훨씬 더 강력한 솔루션을 제공 할 수 있습니다.

은 자세한 내용은 여기를 참조하십시오 : 여기 http://blog.nenoloje.com/2011/08/better-alternative-to-ilmerge.html

그리고! http://blogs.msdn.com/b/microsoft_press/archive/2010/02/03/jeffrey-richter-excerpt-2-from-clr-via-c-third-edition.aspx ILMerge의 저자는 ILMerge의 저자로이 "의 말한다

, 나는 내가 이것에 대해 알았 더라면이 환상적인 생각, 나는 결코 ILMerge를 쓰지 않았을 것입니다. "

제프리 리히터 (Jeffrey Richter)가 작성했습니다. 대부분의 사람들이 들어줬으면 좋겠습니다. :)

+1

ilmerge 용 GUI 래퍼 인이 도구 http://ilmergegui.codeplex.com/이 좋은 시작입니다. –

+0

[ILRepack] (ILMerge에 대한) 오픈 소스 대안 인 https://github.com/gluck/il-repack – Gluck

관련 문제