2015년 2월 13일 금요일

VisualStudio 2013 Express 에서 ClickOnce(클릭원스) 배포하기

보통 VisualStuio Express 버젼은 설치파일을 만들수 없다고 알려져 있는데, 사실 안되는건 아니다.
엄밀히 얘기하면, Express 에 설치본 만들기 기능이 없는것은 맞지만, 사실 MS 에서 로컬 배포기능 자체를 만들지 않고 있다.
Express 가 아닌 정식 버젼에서도 자체 설치파일 만들기 기능은 제공하지 않고 있으며, InstallShield Limited 판을 제공하고 그걸 통해서 설치파일을 만들게 하고 있다.
다시말해 정식판과 Express 의 차이라고는 "InstallShield Limited" 판을 제공하고 있느냐 아니냐 하는 정도의 차이가 있을 뿐.

그게 어느정도 이해가 되기도 하는게, 어차피 만들어 놔봐야 다른 배포툴을 이용하는게 현실이니 궂이 만들생각이 없을 만도 하다.

암튼, MS 에서는 이제 로컬 배포 보다는 웹배포를 밀기로 작정한듯.
그래서 웹배포 방식 (ClickOnce) 은 Express 에서도 가능하다.
의외로 이걸 잘 모르는 사람이 많은듯하다.

쓰는 방법은 어차피 이전과 같은데.

프로그램 속성에서...


게시탭의 내용을 등록하면된다.


폴더 위치는 웹접근이 가능한 위치를 지정하고, 아래에는 접근 가능한 웹URL 을 적으면 된다.
배포할 폴더 위치는 일반적으로 웹배포를 할때는 개발 PC 가 아닌 다른 서버에서 배포를 하니 주로 FTP를 쓰지만, 로컬 경로에 배포판을 만드는것도 가능하다.
이경우, 외부 에서 그 배포처로 접근 가능하지 않을 경우 업데이트는 안되겠지만, 배포한 파일을 통채로 전달해, 프로그램 설치 자체는 가능하다.

암튼 이렇게 배포르 하면.


이렇게 웹으로 접근 가능한 배포페이지가 생성된다.
여기서 "설치"버튼을 클릭하면 설치가 된다.

물론 인증키같은게 없기 때문에...


이런 보안 경고가 뜰것이다.



내가 만든 프로그램이므로 경고를 무시하고 설치를 하자.


이렇게 설치단계를 진행하면....


프로그램이 실행되고...


메뉴에도 등록되어 있을 것이다.

※참고로, 웹배포(ClickOnce) 방식으로 배포를 할경우 설치경로를 임의로 변경 할수 없다. (사용자폴더의 앱테이더 영역에 설치가 된다.) 

이렇게 배포를 한뒤에는 프로그램을 변경 했을 때.



게시... 메뉴를 이용해 배포 할 수 있다.
이렇게 새로 배포한 후 기존의 설치된 프로그램을 실행하면...


이렇게 새 버젼을 인식하고 업데이트 여부를 물어 보며, "확인"을 클릭시 새로운 버전을 다운 받아 실행이 된다.


이경우 변경된 사항만 다운 받으므로 재설치에 비해 상당히 시간을 절약 할 수 있다.
물론 배포처를 접근할 수 없을 경우에는 업데이트를 하지 않고 기존 버전이 바로 실행 된다.