본문 바로가기

Pang System

[C#] 파일 배포시 DLL ,OCX 포함하여 단일 EXE 파일로 배포방법

정리가 간략하게 잘된 내용이 있어 기록함.

참조하는 DLL , OCX 를 같이 배포하지 않고 모든 파일을 리소스에 포함시켜 단이 EXE  로 만든 다음  실행시 DLL,OCX 파일을 다시 생성하는 방법

 

요약) 1. 리소스 파일에 리소스 추가 ->기존파일 추가 ->참조하는 원본 파일을 추가
        2. Resources 폴더 생성되고 참조파일이 추가된걸 확인 후 -> 참조파일 우측 속성 -> 빌드작업 -> 포함리소스 지정
        3. 프로젝트 처음 시작 구분에 참조파일명과 동일한 이름 파일을 만들고 -> 리소스에서 파일을 읽어서 덮어쓰기
        * 아래 구문 폼 로드 부분. 원본참조동일함.

             // 컴파일 배포시 단이 exe 로 배포하고 , 참조하는 dll은 리소스 파일에 추가하여 (참조리소스)
            // 단일 실행파일로 만들어 배포함.
            // 프로그램은 실행시 참조 dll 파일을 생성하고 리소스 파일에 있는 원 파일을 읽어서 대체함.
           
            string strOutlookPath = System.Windows.Forms.Application.ExecutablePath.Replace("/", "\\");
            int intPos =   strOutlookPath.LastIndexOf("\\");
            if (intPos >= 1) strOutlookPath = strOutlookPath.Substring(0, intPos).Trim('\\');
            strOutlookPath += "\\Microsoft.Office.Interop.Outlook.dll";

            FileInfo fileinfo = new FileInfo(strOutlookPath);
            if (fileinfo.Exists == false)
            {
                byte[] aryData = Resource1.Microsoft_Office_Interop_Outlook; //리소드 디자인에 저장한 이름
                FileStream fileStream = new FileStream(fileinfo.FullName, FileMode.CreateNew);
                fileStream.Write(aryData, 0, aryData.Length);
                fileStream.Close();
            }


  

 

 

원본 링크
http://liesm.tistory.com/entry/C-Exe-파일에-DllOcx-파일-포함하여-컴파일하기

다른참조 링크 
http://xinics.tistory.com/89