Visual Studio 2010 설치 프로젝트 및 .Net Framework 부트스트래퍼 인스톨

Posted by RAY.D
2015. 8. 31. 08:21 Language/C#
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.



출처 : http://clnaccce.tistory.com/entry/Visual-Studio-2010-%EC%84%A4%EC%B9%98-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EB%B0%8F-Net-Framework-%EB%B6%80%ED%8A%B8%EC%8A%A4%ED%8A%B8%EB%9E%98%ED%8D%BC-%EC%9D%B8%EC%8A%A4%ED%86%A8









오늘 적어둘 내용은


1. Visual Studio 2010 에서 설치 프로젝트를 통해 Install Package 만들기.


2. 부트스트래퍼(Bootstrapper) 방법으로 .Net Framework 설치하기.


최근 작은 프로젝트를 진행하면서 C#으로 개발한 솔루션을 웹페이지를 통해서 배포해야하는 문제가 생겼다.


사용자는 소규모 납품업체들이라 전산담당자 한명 없는 회사가 99% 이다.

그래서 원클릭 설치는 필수.


닷넷 개발 시작한지 6개월.

잘 알리가 없다.


이러지리 뒤져서 찾아낸 방법을 정리해두려고 한다.




▶ 그림과 같이 프로젝트를 생성한다.

▶ 프로젝트 이름은 'FocusClientInstall'이라고 하였다.



▶ 솔루션 구성화면.

▶ '응용 프로그램 폴더'는 설치된 파일들이 위치한 경로를 설정한다.

▶ '사용자 바탕화면' 바탕화면에 설치될 실행파일의 바로가기를 만든다.

▶ '사용자 프로그램 메뉴' 시작메뉴에 구성될 실행파일의 바로가기를 만든다.



 첫 번째 할일은 '응용 프로그램 폴더'를 선택하고 속성창에서 DefaultLocation 속성을 편집한다.

▶ 이것은 배포할 파일들이 설치될 위치를 결정하는 것이다.



 '응용 프로그램 폴더'를 선택하고 설치할 파일들을 선택한다.



 '응용 프로그램 폴더'에 설치될 파일들을 추가하였다.

 ico(아이콘) 파일은 바로가기 아이콘을 위해서 추가하였다.



 실행 프로그램에 대하여 '바로가기'를 만든다.

 '바로가기' 만들기는 두번 작업한다. 하나는 '사용자 바탕 화면'을 위해서, 또 하나는 '사용자 프로그램 메뉴'를 위해서 한다.



 '바로가기'를 만들고 Icon 속성을 편집한다. Icon은 '응용 프로그램 폴더'에 추가한 아이콘 파일을 지정한다.

 만들어지 바로가기는 '사용자 바탕화면'으로 드래그앤드랍(Drag and Drop)으로 이동한다.

 두번째 바로가기를 만든 후에 '사용자 프로그램 메뉴'에 드래그앤드랍 으로 이동하는데, 시작메뉴에 등록되는 것이므로 폴더를 하나 생성해서 메뉴그룹을 만들어주는 것이 좋겠다.



 '사용자 프로그램 메뉴' 아래에 'TestFocus'라는 메뉴그룹(폴더)을 생성하고 바로가기를 옮긴 상태.


▶ 여기까지 배포해야할 파일들의 설치 작업은 완료되었다. 그러나 한가지 놓치지 말아야할 것이 있다.

▶ 오른쪽 솔루션탐색기에 '발견된 종속성' 폴더를 보면 'Microsoft .NET Framework'가 종속되어 있다.

▶ 종속된 파일은 반드시 같이 배포가 되어야한다.


▶ 게다가 설치할 응용 프로그램은 닷넷으로 개발된 어플리케이션 이므로 클라이언트에 닷넷이 설치되지 않으면 어플리케이션이 실행될리 없다.


▶ 닷넷 프레임워크가 설치되지 않으면 안되는 것이 또 하나 있는데 그것은 '설치 프로젝트'를 통해서 만들어지는 설치실행파일이다(확장자 msi).


▶ 이런저런 이유로 닷넷프레임워크는 사전에 반드시 설치가 필요한데, 이 때 사용되어지는 인스톨 방식이 부트스트래퍼 인스톨이다.


▶ 부트스트래퍼 인스톨은 어떤 응용프로그램이 설치되기 전에 필수적으로 설치되어야할 객체들(어셈블리)의 설치여부를 체크하고 설치 여부에 따라 설치하거나, 설치를 스킵하거나 하는 인스톨 과정을 말한다.


▶ 부트스트래퍼 인스톨 패키징 작업은 아래 순서로 진행한다.


▶ 프로젝트에서 컨텍스트메뉴(오른쪽 마우스버튼 메뉴)를 띄우고 '속성' 메뉴를 선택한다.



 '필수 구성 요소(P)...' 버튼을 클릭한다.



 부트스트래퍼로 설치할 구성요소들을 선택한다.


 닷넷 프레임워크 설치는 두가지가 있다. 하나는 Client Profile이고 하나는 Full 버전 이다. Client Profile은 닷넷 기반 프로그램들을 구동하기 위한 최소한의 설치를 말한다. 자신의 어플리케이션에 맞게 구성요소를 선택하면된다.


 구성요소 목록 아래쪽에 Windows Installer가 있는데 반드시 선택하도록 한다.


 Windows Installer의 경우 클라이언트 환경이 Win7 + sp1이면 이미 설치되어있다. 또한 Xp + sp3 이면 이미 설치되어있다. 이 경우는 선택하였더라도 설치시 Skip 된다.


 필수구성요소의 설치위치는 상황에 따라서 선택할 수 있지만, 나의 경우는 웹을 통해 배포하는 경우이므로 공급업체 웹사이트에서 설치파일을 다운로드 하도록 설정하였다. 두번째의 옵션은 필수구성요소가 설치될 응용프로그램과 같은 위치에 있어야한다는 것 같고, 세번째 옵션은 네트워크 상의 어떤 위치에 구성요소 설치파일들이 존재해야한다는 거 같다.


 이제 배포할 준비가 되었다. 여러가지 옵션들을 선택하여 처리할 수 있으나, 이번 프로젝트에서 필요한 것은 여기까지 였기 때문에 설명도 여기까지말 한다 (이건 완전 내맘대로)


 빌드!!!


 빌드하니까 두개의 파일이 생겼다. 두개의 파일에 대해서 설명하자면...

 setup.exe 파일은 필수구성요소 설치를 위한 설치실행파일이다. 즉 이녀석은 닷넷이 설치되지 않았더라도 실행이 가능하다는 얘기다.

 FocusClientInstall.msi 파일은 어플리케이션 설치파일이다. 이녀석은 Windows Installer 가 없거나, 닷넷프레임우크가 설치되어있지 않으면 실행되지 않는다.

 배포하려는 어플리케이션을 설치하기 위해서는 setup.exe를 실행해야한다.


*** 아~~ 밤도 늦었는데 글이 길어지니까 점점 귀찮아진다 ***


 그런데 난감한 일이 발생한다. 최조의 의도는 웹페이지를 통해 원클릭 배포를 목적으로 했는데 난감하게 두개의 파일을 배포해야한다.


 IExpress 라는 프로그램을 이용하면 두개의 파일을 묶어서 설치프로그램으로 만들 수 있다.


 이 후 과정들은 IExpress로 설치프로그램을 만드는 과정이다.



 요렇게 시작하는 녀석이다.

 'SED 파일 새로 만들기'를 선택하고 '다음'



 '파일의 압축을 풀고, 설치 실행하기'를 선택해야한다. 당연한 것 아닌가...'다음'



 설치과정에서 대화상자에 나타날 제목을 입력한다. '다음' 클릭.



 이부분은 필요 없어서 패스. '다음' 클릭.



 이부분도 필요 없어서 패스. 참고로 저작권을 표시하고 싶으면 텍스트파일로 적어놓은 파일을 선택만 하면된다. '다음' 클릭.



 '설치 프로젝트'에서 빌드하여 만들어진 설치파일 두개를 추가한다.



 설치 프로그램 항목에 setup.exe를 선택해야한다. 클라이언트 피시에 닷넷이 설치되어있는지 아닌지를 알지못하는 상황에서 닷넷이 설치되어있지 않다는 가정하에 반드시 setup.exe를 먼저 실행해야한다. 그러면 msi파일은 ???

그것은 setup.exe가 할 일을 다한 후에 자동으로 msi파일을 실행시켜준다.


 기호에 맞게 선택하면 된다.


 설치가 완료되면 표시할 메세지를 적어준다.


 생성될 설치 패키지의 저장위치와 파일명 설정

 '패키지에서 사용한 긴 이름 파일 저장' 체크박스는 반드시 선택한다.

 그렇지않으면 설치 파일에 긴 이름을 사용한 경우, 파일 이름이 줄어들어서 (FocusCli~.msi) 파일을 찾을 수 없다고 나온다. 어처구니 없는 일인데 예전 버전의 windows에서는 긴 이름이 허용되지 않았기 때문인 것 같다.


 필요한 데로 하면 된다. 이번 경우는 필요 없어서 그냥 패스.


 진행과정 데이터를 저장한다.


 패키지 준비 완료.


 설치패키지가 만들어지는 과정....


 설치패키지가 완료되었다.


 'FocusClientInstallPackage.EXE' 파일을 웹사이트에 링크하여 배포하면된다.


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

Listview 복사(복제하기)  (4) 2015.09.11
MessageBox 옵션... Error 메시지 띄울때  (6) 2015.08.31
C# winform 에서 AboutBox 만들기  (6) 2015.08.28
Button Click 이벤트 강제? 호출  (6) 2015.08.24
Ctrl+S save 로직 만들때  (4) 2015.08.24