2011-12-25 5 views
1

VS에서는 필자 만 코드를 테스트하고 디버깅했지만 실제로 최종화 된 프로그램이나 릴리스에 대해서는 준비하지 않았습니다. 내가 다운로드 한 프로그램 중 일부는 그들이 속한 폴더에 있어야하는 DLL을 가지고 있으며, 하나의 .exe로만 제공되는 프로그램이 있습니다. 모든 파일을 하나의 응용 프로그램으로 컴파일하고 외부 DLL이없는 방법이 있습니까? 어떤 이유로이 나쁜 프로그래밍 방식입니까? VS 프로그램을 하나의 실행 파일로 컴파일하려면 어떻게해야합니까?Visual Studio - 실행 파일에 응용 프로그램 만들기?

이 질문은 매우 분명한 질문인데, 어떤 종류의 지침서를 작성하기에는 너무 명확하기 때문에 답변을 찾을 수 없습니다.

+1

어떤 언어를 사용하고 있습니까? – SLaks

+0

응용 프로그램에 대한 설치 파일을 만들려고합니까? –

+0

C#, 죄송합니다. – mowwwalker

답변

3

ILMerge은 C# 또는 VB.NET과 같은 관리되는 언어를 사용하여 사용할 수있는 유틸리티입니다.

ILMerge는 여러 .NET 어셈블리를 단일 .NET 어셈블리로 병합하는 유틸리티입니다. 실행 파일과 DLL 모두에서 작동하며 출력의 처리와 형식을 제어하기위한 몇 가지 옵션이 제공됩니다.

+0

IlMerge는 완벽하게 작동했습니다. 고마워요! – mowwwalker

1

VisualStudio가 실행 가능 프로그램을 빌드하는 데 문제가 있으면 바로 실행 프로그램을 빌드 할 때마다 실행 프로그램이 실행됩니다. 모든 기본 설정을 사용하는 경우 프로젝트 폴더를 열고/bin 디렉토리를 찾습니다. 그 아래에/debug와/release 디렉토리가 있습니다. 디버그 모드에서 프로그램을 빌드하는 경우/debug 디렉토리를보고 릴리스 모드로 빌드하면 릴리스 디렉토리를 살펴보십시오. VS는 프로그램이 필요로하는 모든 것을 그 디렉토리에 넣을 것입니다. 이러한 모든 파일을 .Net 런타임이 설치된 다른 시스템에 복사하면 실행해야합니다. 문제는 하나의 EXE에 여러 개의 DLL을 결합에 대한 자세한 경우

, 실제로는 CodePlex의 IT에 대한 자습서가 :

아시다시피, 오브젝트 코드의 기존 연결이 더 이상 필요하지 않습니다는 에서 .그물. .NET 프로그램은 일반적으로 여러 부분으로 구성됩니다. 일반적인 .NET 응용 프로그램은 실행 가능한 어셈블리, 프로그램 디렉터리의 몇 가지 어셈블리 및 전역 어셈블리 캐시의 몇 가지 어셈블리로 구성됩니다. 프로그램이 실행되면 런타임에서 이 모든 부분을 프로그램에 결합합니다. 컴파일시 링크가 더 이상 이 필요하지 않습니다.

그러나 때로는 프로그램이 하나의 어셈블리로 실행해야하는 모든 부품을 결합하는 것이 유용합니다. 예를 들어, 은 프로그램, 모든 필수 라이브러리 및 모든 리소스를 단일 .exe 파일에 결합하여 응용 프로그램 배포를 단순화하고자 할 수 있습니다.

http://www.codeproject.com/KB/dotnet/mergingassemblies.aspx

문제는 광범위한 배포를위한 설치 프로그램을 구축에 대한 경우

마지막으로, 얀 빌렘 B는 WIX에 대한 샘플이 있습니다 Using WIX to create an installer: quickstart tutorial

0

예, 당신은 .NET 관리 임베딩 ILMerge를 사용 할 수 있습니다 DLL! 예 here.

관련 문제