본문 바로가기

C# & .NET

ClickOnce 배포에서 프로그램 실행시 파라미터 전달하는 방법

728x90
반응형
.NET의 ClickOnce 배포방법은 개발자에게 행복함과 불편함을 함께 준다.
행복함은 배포를 위해서 이런 저런 작업을 덜 할 수 있게 만들어주기 때문이고,
불편함은 커스터마이징이 너무 많이 막혀있기 때문이다.

몇 안되는 커스터마이징 방법 중에
ClickOnce 배포방법을 통해서 프로그램 배포, 실행시 프로그램으로 파라미터를 전달하는 방법에 대해서 알아보도록 하자.

우선 배포 속성에서 수정해야 할 것이 있다.
프로젝트 속성의 게시 탭에서 옵션 버튼을 선택하면 게시 옵션 대화상자가 나타나는데
이 중에서 응용 프로그램으로 URL 매개 변수가 전달되도록 허용 항목을 체크한다.
부가적으로 URL을 통한 응용 프로그램 활성화 방지 항목은 체크해제한다.
사용자 삽입 이미지
지금부터는 프로그램으로 전달되는 파라미터를 구하는 방법에 대한 코드다.
우선 프로젝트에 System.Web 참조를 추가한다.
이 참조를 추가하는 과정은 다음과 같다.
1) 솔루션 탭의 프로젝트 하위의 참조 항목을 마우스 오른쪽 버튼으로 선택하여 참조 추가 메뉴항목을 선택한다.
2) .NET 탭에서 구성 요소 이름이 System.Web인 항목을 선택한다.
사용자 삽입 이미지
위 두 과정을 거친 결과는 다음과 같다.
사용자 삽입 이미지
이제 프로젝트의 Program.cs 파일 열어서 다음과 같은 함수를 추가한다.
코드 내용을 분석해 보면 웹페이지에서 프로그램을 실행시킬 때 전달한 ? 다음의 URL 파라미터를 항목과 값 의 쌍으로 Dictionary 데이터 구조를 만드는 과정이다.
URL 파라미터라 하면 <URL>?userid=klist&username=이승우 에서 <URL> 뒤의 문자열을 의미한다.
& 기호는 항목-값 쌍을 구분짓는 구분자이고, = 앞쪽은 항목, = 뒤쪽은 값을 의미한다.

이제 위 함수를 호출하는 부분을 작성해 보자.
username 이라는 항목값이 존재하는 경우에 메시지박스를 보여주는 예이다.

마지막으로 URL 파라미터를 추가하는 방법에 대해서 살펴보자.
프로젝트를 게시할 때마다 publish.htm 파일을 작성하여 웹서버에 올려주는데 이 파일의 내용 중 시작 부분에 대한 링크 URL을 다음과 같이 수정한다.
<A HREF="MyEditor_WinForm.application?username=klist">시작</A>

이제 웹페이지의 시작 링크를 선택하면 프로그램은 다음과 같은 메시지박스를 보여주게 된다.
사용자 삽입 이미지

반응형