반응형

이번 강좌는 Window 응용프로그램의 배포에 관한 강좌를 하겠습니다. 만약 우리들이 C#을 통해 어떠한 프로그램을 짜서 다른사람들에게 배포하고 싶을때 그냥 실행파일만 카피해 주는 방식이 아닌 설치 및 배포 프로젝트를 사용하여 인스톨 방식을 통해 사용자가 프로그램을 설치할수 있게 하는 것을 지금부터 배우겠습니다. 설치 및 배포 프로젝트는 Windows Installer을 이용하여 프로젝트를 만드는 것입니다. 설치및 배포 프로젝트를 만드실 사용자의 PC와 배포 프로젝트를 통해 만들어진 파일을 사용하실 PC에도 Windows Installer이 꼭 설치되어 있어야 합니다. 이것으로 고민하시는 분이 많은데요.. 우선 닷넷을 설치하시면 Windows Installer가 기본적으로 설치되며 또한 배포 프로젝트를 통해 만들어진 파일에도 Windows Installer를 추가할수 있기 때문에 이 점에 대해선 걱정 안하셔두 될것 같네영..^^ 자 이제 본격적인 강의에 들어가 보겠습니다.

VS.NET를 실행하시고 새 프로젝트에서 다음과 같이 설치및 배포 프로젝트에서 설치 프로젝트를 선택합니다.

그러면 다음과 같은 화면을 볼수 있을 것입니다.

각 화면에 대해 간단하게 설명하겠다.

1. 대상 컴퓨터의 파일 시스템의 목록이다.
2. 대상 컴퓨터의 파일 시스템에 해당하는 파일의 목록이다. 만약 1번에서 사용자 바탕화면을 선택하고 2번에서 자기가 넣고 싶은 파일을 선택해서 넣는다면 인스톨이 되고나서 그 파일이 대상 컴퓨터의 바탕화면에 설치된다는 말이다.
3. 여기에는 파일 시스템 편집기, 레지스트리 편집기, 파일형식 편집기, 사용자 인터페이스 편집기, 사용자 지정작업 편집기, 시작조건 편집기, 속성 등이 있다. 여기에 대해선 밑에서 자세히 설명하겠다.
4. 각 항목들에 대한 속성이다.

자 우선 기본적으로 배포 프로젝트로 만들어질 파일의 이름과 버전등 속성들을 설정해보자. 3번 솔류션 탐색기에서 프로젝트를 선택한후 속성창에 보면 버전과 나라, 이름등등 속성들을 설정하는 부분이 있으니 각자 맞게 설정해 보자.

이제는 설치에 필요한 파일이 어디에 어떻게 어떤형태로 저장될 것인지를 살펴보자. 3번 솔류션 탐색기에서 프로젝트를 선택한후 3번창의 맨끝에 속성을 선택해 본다. 그러면 다음과 같은 화면을 볼수 있을 것이다.

출력파일 이름에는 배포 프로젝트를 통해 만들어질 인스톨 파일의 이름을 정의하는 곳이다. 기본적으로 Debug 디렉토리 안에 생성된다.

패키지 파일에는 느슨하게 압축되지 않은 파일로, 설치 파일에서, CAB 파일에서 와 같이 세가지 항목이 있다. 이 항목은 설치 파일의 형태를 정의하는 항목이다.
느슨하게 압축되지 않은 파일로 항목은 모든 프로그램 파일과 데이터 파일들이 압축되지 않은 상태 그대로 설치파일에 포함된다.
설치 파일에서 항목은 모든 파일들이 MSI 인스톨 파일안에 합쳐지고 압축되어진 형태이다.
CAB 파일에서 항목은 파일들이 CAB 파일로 만들어 지며 MSI 인스톨 파일은 이 CAB 파일을 읽어서 설치하는 역활만 한다.

부트스트래퍼는 실제 인스톨 프로그램이 실행되기 전에 반드시 실행되어야 하는 프로그램을 말한다. 부트스트래퍼에는 없음, Windows Installer 부트스트래퍼, 웹 부트스트래퍼 와 같이 3가지 항목이 있다.

앞에서 배포 프로젝트를 통해 만들어진 인스톨 파일을 실행할려면 Windows Installer이 꼭 설치되어 있어야 된다고 설명했다. 자 여기서 부트스트래퍼의 항목중 Windows Installer 항목을 선택하면 인스톨 파일에 Windows Installer 이 자동으로 포함된다. 그러므로 Windows Installer 이 설치되어 있지 않은 피씨에서도 자동으로 Windows Installer이 자동으로 설치되어 인스톨이 가능하다. Windows Installer을 선택하면 Windows Installer 파일을 포함하는데 필요한 용량 3MB 정도가 늘어난다. 웹 부트스트래퍼는 웹을 통해 부트스트래퍼를 다운받고 설치한다. 장점은 인스톨 파일의 크기가 작아진다는 장점이 있지만 단점은 인터넷이 꼭 연결되어 있어야 한다는 단점이 있다.

압충에는 속도 최적화, 크기 최적화, 없음 와 같이 세가지 항목이 있으며 항축 형태를 설정하는 곳이다.
속도 최적화를 선택하면 인스톨 속도는 빨라질 것이나 크기는 커질 것이며 크기 최적화를 선택하면 인스톨 파일의 크기는 작아지나 인스톨 속도가 느려질 것이다.

자 이제는 실제 인스톨 파일에 파일을 추가하고 인스톨 진행과정을 제어하는 방법을 살펴보자. 위에서 잠깐 살펴보았던 솔류션 탐색기를 보자.

프로젝트를 선택한 상태에서 3번.. 첫번째 파일 편집기를 선택해 보자. 그러면 다음과 같은 화면을 볼수 있을 것이다.

1. 바탕화면에 아이콘을 추가할수 있다.
2. 응용프로그램의 바로가기를 시작 메뉴에 추가할 경우 사용한다.
3. 실행 파일과 기타 파일들이 저장되는 곳이다.

위 항목에서 각 항목에 파일이나 아이콘, 폴더등을 추가하고 싶으면 각 항목을 클릭한뒤 마우스 오른쪽 버튼을 클릭하면 다음 그림과 같이 추가하는 항목이 나온다.

 

프로젝트를 선택한 상태에서 3번.. 두번째 레지스트리 편집기를 선택해 보자. 그러면 다음과 같은 화면을 볼수 있을 것이다.

이 항목은 사용자가 레지스트리를 추가할수 있는 항목이다. 각 레지스트리 항목에 대한 레지스트리를 추가할려면 레지스트리 항목을 선택한후 마우스 오른쪽 버튼을 누르면 새키 항목을 통해 추가할수 있다. 레지스트리 편집기는 프로그램의 버전이나 데모버젼일 경우 사용기간 등을 설정할수 있어서 편리하다.

프로젝트를 선택한 상태에서 3번.. 세번째 파일형식 편집기를 선택해 보자. 그러면 다음과 같은 화면을 볼수 있을 것이다.

파일 형식 편집기란 만약 설치한 응용 프로그램이 특정한 파일형식(파일 확장자)을 사용한다면 탐색기에서 그 파일 형식을 더블 클릭했을때 자동적으로 응용프로그램이 실행되도록 하는 것이 좋을것이다. 그 파일형식을 파일형식 편집기에 등록시켜 두면 그 파일형식에 해당하는 파일을 더블클릭 했을때 응용프로그램이 실행되는 것이다. 파일 형식을 추가하는 방법은 위 그림에서 대상 컴퓨터의 파일형식을 선택한 다음 마우스 오른쪽 버튼을 누르고 파일 형식 추가를 누르면 다음과 같은 화면을 볼수 있을 것이다.

위의 그림에서 1번 새 문서 형식 #1에 문서 형식의 이름을 정해주고 문서 형식을 클릭한뒤 속성창을 보면 다음과 같이 파일 형식의 속성을 정의해 줄수 있다.

1. 파일 형식을 설명하는 이름이다. 이 이름은 파일 형식 편집기에 표시되고 레지스트리에도 등록된다. 또한 이름은 고유하여야 한다.
2. 이것은 사용자가 지정한 파일형식을 더블 클릭했을때 실행된 실행 파일을 지정하는 곳이다.
3. 파일 형식에 대한 추가적인 설명을 적는 곳이다.
4. 파일 형식을 지정하는 곳입니다. 파일 형식은 앞에 점(.)을 빼고 XXX 식으로 입력합니다. 여러개의 확장자라면 XXX;YYY;ZZZ 식으로 입력하시면 됩니다.
5. 등록할 파일 형식의 아이콘을 지정하는 곳입니다.
6. 선택한 파일형식과 연결할 하나 이상의 MIME를 설정합니다.

위의 윗 그림에서 2번 open 속성을 살펴보자. open을 선택하고 속성창을 보면 다음과 같은 화면을 볼수 있다.

이 속성은 선택한 파일형식이 더블클릭 될때 실행파일에 어떠한 인수를 줄 것인가를 정해주는 속성이다.
1. 파일 형식을 호출할때 사용될 Action 의 이름 즉 이름을 정의하는 곳이다.
2. 파일 형식이 호출될때 실행 파일에 던져줄 인수 즉 Arguments를 정의해주는 곳이다. 기본적으로 %1 이며 %1의 의미는 파일이름이다.
3. 파일 형식이 호출될때 실행 파일에 던져줄 또 다른 하나의 인수이다. 각각을 구분할때 사용한다. 만약 해당하는 파일형식이 더블클릭 했을때 바로 프린트가 되는것이라면 print 인수를 주어 실행파일에 print 가 전달된다. 그리고 실행파일에서는 print 라는 인수를 식별하여 프린터를 해준다. 만약 그냥 파일 open 을 해야 한다면 open 인수를 주는것이 적당할 것이다.

프로젝트를 선택한 상태에서 3번.. 네번째 사용자 인터페이스 편집기를 선택해 보자. 그러면 다음과 같은 화면을 볼수 있을 것이다.

사용자 인터페이스 편집기는 인스톨할때 대화상자를 지정할수 있습니다.
1. 대상 시스템에 응용프로그램을 설치하는 일반적인 설치를 의미한다.
2. 응용프로그램의 이미지를 네트웍 공유를 통해 설치하는 경우에 사용한다.

사용자 인터페이스 편집기는 시작, 진행률, 끝이라는 세단계 진행 상태로 나누어 진다.
각각의 시작, 진행률, 끝 이라는 단계에는 지정된 대화상자를 추가해 줄수 있다. 시작, 진행률, 끝 항목중 하나를 선택하여 마우스 오른쪽 버튼을 누르면 대화상자 추가라는 항목을 통해 대화상자를 추가해 줄수 있다.

대화상자에는 여러가지가 있으며 사용자가 필요한것을 선택하여 추가해 줄수 있다.

프로젝트를 선택한 상태에서 3번.. 다섯번째 사용자 지정작업 편집기를 선택해 보자. 그러면 다음과 같은 화면을 볼수 있을 것이다.




사용자 지정작업 편집기는 설치, 커밋, 롤백, 제거 도중에 실행될 응용프로그램을 지정할수 있다. 각 항목을 선택하고 마우스 오른쪽 버튼을 클릭한후 사용자 지정작업 추가 항목을 통해 응용프로그램을 추가할수 있다.

프로젝트를 선택한 상태에서 3번.. 여섯번째 시작조건 편집기를 선택해 보자. 그러면 다음과 같은 화면을 볼수 있을 것이다.

시작조건 편집기는 설치가 일어나기 전에 대상 시스템이 갖추어야 할 필요조건을 지정해 줄수 있다.

1. 대상 컴퓨터의 시작조건을 검색할수 있다. 조건을 추가하는 방법은 대상 컴퓨터의 검색을 선택하고 마우스 오른쪽 버튼을 누르면 파일 시작 조건 추가, 레지스트리 시작 조건 추가, Windows Installer 등등 과 같은 시작 조건을 추가해 줄수 있다. 여기서 Componentld 속성은 {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} 형식을 사용하여 GUID로 형식이 지정된 문자열을 사용합니다. 여기에서 X는 16진수(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)이며 괄호는 필수적입니다. 또한 고유하여야 합니다.
2. 실제적으로 1번의 시작조건을 검사해서 True 이면 설치가 시작된다. False 이면 에러메세지를 뿌려준다. 1번의 시작조건을 설정하는 방법은 2번의 시작조건을 선택한뒤 마우스 오른쪽 버튼을 클릭하고 시작 조건을 추가하고 2번의 추가된 시작조건을 클릭한뒤 속성창을 보면 Contition 이란 속성을 통해 1번에서 추가된 시작조건을 선택할 수 있다. 만약 1번의 시작조건이 True이면 설치가 시작된다.

자 이제 여기까지 성공적으로 왔으면 마지막으로 빌드.. 즉 디버그를 해보자. 메뉴 항목에서 빌드항목 아래 솔류션 빌드를 선택하자. 그러면 이제 인스톨 파일이 만들어져 있을 것이다. 이제 성공적으로 끝났다.



자.. 이로써 배포에 관한 설명을 마치고 다음에는 배포에 관한 실습을 따라 해보도록 하자.

반응형

'Program > C#' 카테고리의 다른 글

Delegate [대리자] 기본 개념과 사용법  (0) 2010.03.07
닷넷 응용 프로그램의 설치 및 배포 #2  (0) 2010.03.07
시스템 사양 알아내기~  (0) 2010.03.07
Delegate 사용 2  (0) 2010.03.07
Delegate 사용  (0) 2010.03.07

+ Recent posts