본문 바로가기
프로그래밍/Desktop App

[C#] ClickOnce, Windows Installer, InstallShield

by YuminK 2023. 11. 14.

최근에 WPF 앱을 배포하는 방법을 알아보면서 ClickOnce와 InstallShield에 대해 검토하게 되었다.

 

데스크탑앱 배포 방식(엄청 많다;;)

https://learn.microsoft.com/ko-kr/visualstudio/deployment/deploying-applications-services-and-components?view=vs-2022

 

ClickOnce

ClickOnce를 쓰면 특정 웹 페이지에 파일을 배포하는 방식이나, 디스크에 설치 파일을 배포할 수 있다. 파일 서버를 연동하여 웹에 설치할 수 있다고 한다. 배포하면 application 파일과 setup.exe 파일이 나오는데 하나의 파일로 만드는 것은 어렵다는 의견이 많다. 스크립트를 작성하여 하나로 묶고, 압축을 푸는 것도 가능하다는 이야기도 있다. 

 

ClickOnce 사용 방법

https://luvris2.tistory.com/635

 

ClickOnce는 여러 파일이 같이 나온다. (exe 파일 하나만 나오는 형태가 아니다.) 안 된다는 의견도 있고 따로 코드를 작성해야 한다는 내용도 있다. 

https://stackoverflow.com/questions/21522879/creating-single-setup-file-using-clickonce

 

해당 의견에 따르면 싱글 파일로 생성하지 못한다고 한다. 다만 아카이브 방식을 통해 압축하고 푸는 방식을 제공한다. 싱글 파일 생성을 체크해도 안 된다.

https://stackoverflow.com/a/77097287

 

You may find various custom installers that may embed everything into a single setup.exe file. For example, you may take a look at InstallShield or Advanced Installer .

https://stackoverflow.com/a/58291545

 

ClickOnce 구조

https://stackoverflow.com/questions/33531363/distributing-files-of-a-clickonce-application

https://stackoverflow.com/questions/77093603/clickonce-does-not-produce-one-single-wpf-app-file

 

Windows Installer

Windows Installer를 사용하면 클라이언트에 쉽게 배포하고 실행할 수 있는 자체 포함 실행 파일로 애플리케이션을 패키지할 수 있다. 또한 Windows Installer는 Windows와 함께 설치되며 바탕 화면, 시작 메뉴 및 프로그램 제어판과 통합할 수 있다. Windows Installer에서는 애플리케이션의 설치 및 제거가 간단하지만 설치된 애플리케이션이 버전 관리 관점에서 최신 버전으로 유지되도록 보장하는 기능은 제공하지 않는다.

 

Windows Installer 사용방법

https://build.tistory.com/23

 

InstallShield

인스톨실드(InstallShield)는 소프트웨어 설치 프로그램 제작 소프트웨어이다. 파일 압축 설치, 설치 비밀번호, 분할 설치, 시리얼 설치 등을 할 수 있는 프로그래머들을 위한 강력한 소프트웨어이다. 경쟁 소프트웨어로는 WISE Install Master가 있다.

https://ko.wikipedia.org/wiki/%EC%9D%B8%EC%8A%A4%ED%86%A8%EC%8B%A4%EB%93%9C

 

과거 인스톨쉴드는 제한된 버전을 통해 무료로 사용할 수 있었던 것으로 보이나, 현재 유료 서비스로 변경되었다. (3년 구독형 기준, 1년에 약 200만원) 

https://www.revenera.com/install/products/installshield/pricing

 

인스톨쉴드에서 제공하는 소프트웨어에선 이런 부분들을 제어할 수 있다. (다른 기능들도 더 있다)

1. 배포할 파일을 추가

2. 배포할 위치를 변경

3. 바로가기 항목을 생성하고 아이콘을 변경

4. 프로그램 실행에 필요한 prerequisites 프로그램 추가

prq 파일을 추가하여 installer 경로 및 exe 파일을 추가하면 된다.

5. 다이얼로그 수정 및 이벤트 제어

 

도규먼트(안 친절함)

https://docs.revenera.com/installshield28helplib/helplibrary/Tutorials.htm#tutorial_3924765758_1021184


결론

윈도우 데스트탑 앱을 배포하는 방법은 정말 다양하다. Windows Installer/ClickOnce 같은 MS에서 제공하는 툴을 사용할 수도 있고 InstallShield나 NSIS, Wix 이것저것 정말 많다...

 

사실 어떠한 방법으로 배포해도 크게 상관없는 것 같기는 한데, 실행파일이 하나로 나오는 형태를 선호한다면 clickOnce는 아닌 것 같다. InstallShield는 간단하게 쓰는 느낌이 아니고 기능도 많다. 라이센스 비용도 내야 하고... 무난하게 고른다면 Windows Installer로 개발할 것 같다. 다양한 배포 방법이 있는 만큼, 적절한 툴을 사용하는 것이 좋을 것으로 보인다.

댓글