강좌,팁

[강좌:38] 배포용 설치 프로그램 만들기(CVI 8.5 이용)

조회 수 22751 추천 수 0 2008.03.14 12:33:24
허창원 *.68.47.59

앞강좌를 올린지 6개월이 지났네요. 개발위주의 개인업체로서의 한계를 많이 느끼게 되었습니다. 그 한계를 뛰어넘기 위해 계속 달려갈 것을 각오하면서 요즘 CVI 개발툴 사용에 있어서 꼭 다루어야겠다고 생각했던 주제(배포용 설치 프로그램 만들기)를 2회로 나누어 올리기로 했습니다.

---------------------------------------------------------------------------------------

[강좌:38] 배포용 설치 프로그램 만들기(CVI 8.5 이용)

이용된 버전: LabWindows/CVI 8.5.0 (278)
강좌분류: 따라하기
등급: 초급

차례
서론
1. 이번 예제 프로그램의 개요
2. 작업준비
3. 코딩
4. 배포용 설치 프로그램 만들기
5. 설치 및 실행
마무리

 

서론
LabWindows/CVI가 8.x 대로 오면서 배포용 설치 프로그램을 만드는 기능이 좀 업그레이드 되었습니다. 내부적으로는 Windows Installer를 이용하면서 NI 나름대로의 Installer가 가미된 느낌입니다. 나름대로 업그레이드되었다고 하지만, 기존의 사용자들에게는 어쩌면 불편하다고 느껴질지 모르겠습니다.
그렇지만, 지금 처음으로 접하시는 분들에게는 아무 상관없는 얘기가 되겠지요.

이번 강좌에서는 CVI 8.x에서 제공하는 기본적인 방법 위주로 따라가보기로 하고, 조금더 실제적이고 효율적인 방법은 별도의 강좌에서 다루기로 하겠습니다.

 

1. 이번 예제 프로그램의 개요
이번 따라하기 예제의 최종 프로그램 실행화면을 그림 1.1에 보였습니다. 이번 강좌의 목적이 배포용 설치 프로그램을 만드는 것이므로, 프로그램은 매우 간단하게 종료 버튼 하나만 넣었습니다.

그림 1.1 프로그램의 실행화면

 

2. 작업준비
작업 준비 과정은 "[강좌:21] CVI 프로그래밍 시작단계 정의(2)" 강좌 글의
"2. LabWindows/CVI의 프로그래밍 작업 시작단계" 부분에 따라 아래와 같이 간단히 정리합니다.
즉, 프로젝트 파일 저장, 화면구성, 속성설정, 기본 소스코드 생성의 과정을 요약합니다.

프로젝트 파일명: TestDistribute.prj

화면구성은 그림 2.1에 보였습니다. 명령버튼만이 자리를 지키고 있습니다. 콜백함수는 Panel 콜백과 Exit 명령버튼의 콜백함수만 이용됩니다.

그림 2.1 TestDistribute 프로젝트의 화면구성

uir 파일 내의 각 컨트롤의 속성은 표 2.1과 같이 설정하였습니다.

표 2.1 컨트롤의 속성값

컨트롤 종류 Constant Name Callback Function Label Default
Value
비고
Command Button

cmdExit

cmdExit

Exit

 

 

 

Panel의 속성은 표2.2와 같이 설정합니다.

표 2.2 Panel의 속성설정

Panel 속성설정

Constant Name

PANEL

Callback Function

PanelCB

Panel Title

Test Distribute

Other Attributes

 

그리고, 기본 소스를 생성합니다. Generate All Code 창에서 Program Termination 난의 Select QuitUserInterface Callbacks에는 PanelCB와 cmdExit 두 함수를 체크하도록 합니다. 프로그램 종료시에 두가지 방법(창의 닫기 버튼, Exit 명령버튼)으로 종료되도록 할 것이니까 말입니다.
기본으로 생성된 함수는 main() 함수와 PanelCB(), cmdExit() 콜백함수들입니다. 그림 2.2에 프로젝트 창을 보였습니다.

그림 2.2 TestDistribute의 프로젝트 창

3. 코딩
이제 코딩 작업으로 들어갑니다. 참, 그러고 보니 코딩 할 게 없네요. 그죠?
이번 프로그램이 하는 일이란 종료하는 것밖에 없으니 말입니다. 그림 3.1에 TestDistribute.c 파일을 보였습니다.

그림 3.1 자동생성된 TestDistribute.c 파일
(소스코드 이미지를 클릭하면 소스 텍스트 창이 나타난다는 거 아시죠?)

프로젝트 창의 Build 메뉴에서 실행파일을 만들어 봅니다. Configuration에서 Release로 하여 실행파일을 만들었다면, 이제는 배포용 설치 프로그램을 만드는 일만 남았습니다.

4. 배포용 설치 프로그램 만들기
먼저 보여드릴 방법은 LabWindwos/CVI 8.x에서 제공하는 기본적인 설정대로 진행하겠습니다.
프로젝트 창에서 Build 메뉴에서 Distributions - Manage Distributions... 서브 메뉴를 선택합니다. 그림 4.1에 메뉴를 선택하는 화면을 보였고, 4.2에는 그 결과 나타난 Manage Distributions 화면을 보였습니다.

그림 4.1 Distributions 메뉴 선택

 

그림 4.2 Manage Distributions 창

여기서 New... 버튼을 클릭하면 그림 4.3과 같은 화면이 나옵니다.

그림 4.3  New Distribution 창

여기서 OK를 누르면, Edit Installer라는 창이 그림 4.4와 같이 나타납니다. Edit Installer 창의 General 탭에서는 Language와 Publisher 정도만 조정해주면 무난하겠습니다.

그림 4.4 Edit Installer 창

Drivers & COmponents 탭을 그림 4.5에 보였습니다. 이 부분은 특별히 배포용 설치 파일들의 전체 용량을 줄이기 위해 조금더 수정해봅니다.

그림 4.5 Drivers & Components 탭의 설정 화면

그림 4.5의 왼쪽 부분의 빨간 박스친 부분은 이번 예제 프로그램에서는 없어도 되는 부분입니다. 모두 체크해제합니다.
프린터 포트(LPT)나 시리얼포트를 제어하기 위해 함수들을 사용했다면, Low-Level Support Driver를 체크하시면 되겠습니다. 그 외에도 해당 기능을 프로그램에서 사용한다면 체크하면 되겠습니다.

NI-DAQmx나 NI-488.2 같은 모듈을 사용하여 DAQ나 GPIB 통신을 한다면 해당난에 체크해도 됩니다만, 저는 여기서는 체크해제해두고, 아예 NI-DAQmx나 NI-488.2 드라이버를 해당 시스템에 별도로 몽땅 깔아버립니다. 어떠한 하드웨어 장치를 사용하려면 장치 드라이버를 설치하는 것이 일반적으로 쉽게 이해되므로, 개발하는 응용 프로그램의 설치 프로그램에는 해당 장치 드라이버를 포함하지 않는 것도 무난하다고 봅니다.

별도로 장치 드라이버를 설치할 경우에는 개발할 당시에 이용된 장치 드라이버 버전보다 이전 버전을 설치하면 문제가 될 수도 있습니다. 참고하십시오.

이렇게 해서 그림 4.5의 OK 버튼을 클릭합니다. 그러면, 그림 4.6의 OK 버튼을 클릭하여 Distributions을 위한 설정을 마칩니다.

그림 4.6 Manage Distributions 창의 Distributions 설정 리스트

이제 프로젝트 창의 Build 메뉴의 Distributions - Build TestDistribute 서브 메뉴를 선택하여 배포용 설치 프로그램 파일을 생성합니다. 그림 4.7과 같은 과정을 거쳐서 Build 과정이 끝나게 됩니다.

그림 4.7 배포판을 만드는 중

그림 4.8에 탐색기 화면을 보였습니다. 오른쪽 부분에는 Volume 폴더의 내용을 보였습니다. 이 서브 폴더들을 몽땅 배포하면 되겠습니다.

그림 4.8 배포용 설치 파일들이 생성된 탐색기 화면

여기서 좀더 용량을 줄인 설치 파일들만 뽑아내려면, Volume-bin-dp 폴더의 파일들만으로도 대부분의 경우에 충분합니다. 그림 4.9에 해당 파일들을 보였습니다.

그림 4.9 배포용 설치 파일의 핵심

그림 4.9의 세 파일만 있어도 요즘(2008년 3월현재)의 Windows2000/XP/Vista에는 무난하게 설치됩니다. 즉, TestDistribute.msi 파일을 더블클릭하면 Windows의 Installer가 실행되면서 설치를 해줍니다. msiexec.exe 라는 파일명으로 된 Windows Installer가 실행되지 않는다면, 두가지 경우로 추측해 볼 수 있습니다. Windows Installer인 msiexec.exe가 설치되지 않았거나, 경로(PATH)가 제대로 지정되지 않았을 것입니다.

저는 그림 4.9의 세 파일만 모아서 압축 EXE 파일로 만들어 배포합니다.

 

5. 설치 및 실행
이제 테스트해봐야죠?
TestDistribute.msi를 더블클릭하여 설치를 해보겠습니다. 그림 5.1에서 그림 5.8까지의 과정을 거쳐서 설치가 됩니다.

그림 5.1 설치 과정 1

 

그림 5.2 설치 과정 2

 

그림 5.3 설치 과정 3

 

그림 5.4 설치 과정 4

 

그림 5.5 설치 과정 5

 

그림 5.6 설치 과정 6

 

그림 5.7 설치 과정 7

 

그림 5.8 설치 과정 8

마지막의 그림 5.8 설치 과정은 장치 드라이버와 큰 관련이 없으면 No를 선택해도 되겠습니다. 일단 No를 선택해서 잘 안되면, 재부팅후 실행해보면 되죠!

 

위의 과정을 거쳐 설치된 TestDistribute를 그림 5.9에서처럼 선택하여 실행해봅니다. 그림 5.10에 그 실행화면을 보였습니다.

그림 5.9 TestDistribute의 실행

 

그림 5.10 TestDistribute 실행화면

 

마무리
이렇게 해서 LabWindows/CVI 8.5에서의 배포용 설치 프로그램 파일을 만들어 보았습니다. 앞으로도 버전이 업그레이드되면서 좀더 변경될 가능성이 많은 부분인 것 같습니다.

누군가 시간이 되시면, InstallShield 나 NullSoft의 NSIS 로도 만드는 과정을 보여주면 참 좋겠습니다.

"평온한 마음은 육신의 생명이나 시기는 뼈를 썩게 하느니라" (잠언 14장 30절)

감사합니다.

예제 프로그램 구상, 테스트 및 작성: 1시간 42분 59초
강좌 문서 작성: 2시간 8분 14초
(총 3시간 50분)

2008.3.14 금

극동테크(www.kdtechno.com) 허창원 드림

List of Articles
번호 제목 글쓴이 날짜 조회 수
116 [팁] 컨트롤의 tooltips 지정하기 file 허창원 2020-05-08 293
115 멀티쓰레드 사용 시, 메모리 관련 참고사항입니다. [1] 요돌이 2017-10-24 984
114 [팁]타이머 사용시 주의할점. file 이현화 2014-02-13 2437
113 Lable 세로쓰기 [1] 초보 2013-12-21 2472
112 [강좌:45] ini 파일 이용하기(CISManip.dll 활용) [2] 허창원 2013-05-29 3786
111 [강좌:44] ini 파일 이용하기(기본 활용) [1] 허창원 2013-05-29 5046
110 [강좌:43] Panel 크기 변경시에 컨트롤의 위치나 크기 조절하기(CISManip.dll 활용) 허창원 2013-03-12 6268
109 [강좌:42] Panel 크기 변경시에 컨트롤의 위치나 크기 조절하기(기본 활용) 허창원 2013-03-12 6863
108 [팁21] 그래프를 지우고 그릴때의 plotHandle을 구하는 방법 [1] 야리싸내 2012-05-25 7389
107 [강좌:41] Prototype 프로그램 CISDEFPROG 소개 [1] [1] 허창원 2012-01-03 8587
106 [강좌:40] CIS Project를 시작하며... [4] 허창원 2011-12-29 8355
105 ------------- 이제 새로운 지평이 열립니다 ------------- 허창원 2011-12-29 8760
104 [팁]그룹명령(고수님들은 패스~ ^^;) file [2] 이현화 2009-06-15 23017
103 [KD스타일규칙] Panel, Control, Function 에 대한 이름부여규칙 file 허창원 2008-10-15 20851
102 [팁]Elaped Time [1] 이현화 2008-10-15 26298
101 [팁:19] 시리얼 포트 모니터링(Serial Port Monitoring) 유틸리티 소개 [9] [1] 허창원 2008-05-12 85630
100 [팁:18] CVI에서 ActiveX 컨트롤 사용하는 절차 file [2] 허창원 2008-04-07 30850
99 [강좌:39] 입맛대로 좀더 편리하게 배포용 설치 프로그램 만들기(CVI 8.5 이용) [1] [1] 허창원 2008-03-14 22884
» [강좌:38] 배포용 설치 프로그램 만들기(CVI 8.5 이용) 허창원 2008-03-14 22751
97 [팁]간단한 최소화 기능개선입니다. 김민수 2007-10-05 24002