본문 바로가기

Study

윈도우 설치파일 만들기(3) - XML 스크립팅

윈도우 설치파일 만들기(3) - XML 스크립팅



이전 글에서 Wix를 사용할 환경을 구성했으니 XML 스크립팅을 해서 빌드 파일을 만들어 보도록 한다.


1. Visual Studio에서 다음과 같이 Setup Project for WIX v3을 만든다.





2. 만들어진 Wix 프로젝트. Product.wxs에다 작업을 해주면 된다.






3. [Tools]-[Create GUID]에서 복사를 눌러 Product Id에 넣어준다. 또한 Manufacturer에 작성자 명을 입력해준다. 이 String 값은 [프로그램 추가/제거]에서 게시자로 들어간다.



<Create GUID>



<Product ID, Manufacturer>




4. Suppress ICE validation을 체크해 주어야 한다. 이는 msi 패키지를 생성할 때 merged module의 table을 검사하는 기능이다. 이는 우측 Solution Explorer 란에서 프로젝트 우측 클릭 후 Property에 들어가 Tool Settings의 ICE validation에서 확인할 수 있다.






5. 파일들을 설치하는 Installer 파일을 만들기 위해선 이 wxs 파일 내에 전부 나열해야 한다. 가독성을 높이기 위해 설치 파일들을 나열하기 전에 설치 디렉토리를 먼저 정의하는 게 좋다. 디렉토리는 <Directory> 요소를 사용하여 정의한다. 바로 아래에 노란색으로 줄 쳐진 부분이다.





6. ID가 TARGETDIR인 Directory는 Windows Installer에 필요하며 설치를 위한 모든 디렉토리 구조의 루트이며, 모든 프로젝트에 존재한다. 





7. ID가 ProgramFilesFolder인 Directory는 컴퓨터의 Program Files 폴더를 참조하며 C:\Program Files\로 변환된다. 세번째 디렉토리는 이 C:\Program Files\아래에 응용프로그램의 폴더를 만들고 나중에 참조될 수 있도록 INSTALLFOLDER란 ID가 부여된다. 이 폴더 명은 SetupProject1이 된다. 따라서 이 스크립트의 결과는 C:\Program Files\SetupProject1 폴더이다.




8. 이제 5~6에서 보았던 Fragment 하단부에 있는 Fragment에 설치 프로그램 패키지에 추가할 파일들을 나열해야 한다.





9.  <ComponentGroup> Element 내부엔 <Component> Element들이 들어간다. 여기 내부에 들어있는 <Component> Element 들이 인스톨러 패키지에 포함된다.





10. 설치파일을 나열하는데엔 2가지 Elements가 필요하다. <Component> Element와 <File>Element다.

    <Component> Element는 <File>, <Registry Entry>, <Shortcut> 같은 Element가 담겨진다.

    일반적으로 <Component> Element 하나 당 <File> Element 하나로 제한한다. 

    또한 <Component> 당 각자의 고유한 Guid를 가져야 한다.

    다음은 test.txt 파일과 test2.txt 파일을 패키지에 넣는 예제이다.






11. 보시다시피 <ComponentGroup>에 여러 <Component>들이 들어있으며 각자의 고유한 Guid를 

     가지고 있다. 또한 <Component>당 한개의 <File>을 지니고 있다. 만약 한개 이상의 <File>이

     들어간다면 나중에 Install 할 때 문제가 생길 수도 있다.




12. 다음으로 확인해 주어야 할 부분은 <Feature> Element이다. <Feature>는 Wix에게 파일 설치를

     지시한다.






13. 10번에 있는 Id가 ProductComponents인 <ComponentGroup>을 <ComponentGroupRef>를

     이용해 참조해 넣어주면 나중에 Wix가 이 <ComponentGroup>내부의 <Component>들을 

     INSTALLFOLDER에 설치하는 것이다.





14. 이렇게 XML 파일을 작성하고 빌드를 걸어주면 다음 경로에 msi파일이 생성된다.






15. 이를 실행해 주면 Install 창이 잠깐 떴다가 사라진다. 아직 UI관련된 스크립팅을 해주지 않았기 때문이다. 그러나 설치는 완료되었다.





16. 설치된 폴더는 6번에서 설정했던 대로 C:\Program Files에서 확인 가능하다. SetupProject1 폴더가 생기고 내부엔 Test.txt와 Test2.txt가 설치된 것을 확인할 수 있다.





17. 설치된 패키지는 프로그램 추가/제거에서 확인가능하다. 게시자에 3번에서 입력했던 Manufacturer

     가 보이는 것을 확인할 수 있다.






18. Element 매뉴얼 - http://wixtoolset.org/documentation/manual/v3/







참고 사이트 


http://devguru.co.kr/blog/6786/

http://wixtoolset.org/documentation/manual/v3/howtos/files_and_registry/add_a_file.html