어서 노를 저어라!

2010/09/13

C# 윈도우 서비스 프로젝트에 Installer/Uninstaller 내장하기

Filed under: Tips — Tags: , , , , , — latellian @ 11:17
C# 으로 윈도우에 등록되는 서비스 프로그램을 생성후
이걸 어떻게 서비스로 등록하고 제거하나 하는 문제가 있었다.
installutil 이라는 프로그램을 사용해서 등록 해줄수도있지만
이녀석의 위치를 매번 타이핑할수도 없고해서 찾아보았다.
생성된 프로그램에 인자값을 추가로 받아 서비스 등록/제거를 행하게 한단다.

http://stackoverflow.com/questions/255056/install-a-net-windows-service-without-installutil-exe

http://stackoverflow.com/questions/1195478/how-to-make-a-net-windows-service-start-right-after-the-installation/1195621#1195621
두가지 방법중 두번째는 정상적으로 작동했다. 첫번째는 아직 테스트해보지 못했다.
서비스 프로그램이기 때문에 실행시 커맨드라인으로 추가적인 인자값을 전달해줄수있다.
서비스.exe -install / -uninstall을 사용함으로써
msi / installutil 을 따로 사용할 필요가 없게 해준다.
 + 코드를 제대로 수정 하였음에도 계속해서 계정을 요구하는 문제가 발생하였다. (윈도우7)
증상은 install/uninstall 모두 반응을 하나 서비스에 등록시 계정을 요구하며
계정이 맞지않거나 존재하지 않을경우 프로그램이 종료된다.
생성된 바이너리 파일의 속성중 호환성 탭에서 권한 수준 옵션중
“관리자 권한으로 이 프로그램 실행” 에 체크를 해주었다.
이후 콘솔창에서 -install 을 추가로 입력함으로써 정상적으로 설치가 되었다.
관리자 권한으로 실행하겠다는 확인창이 귀찮게 하기는 하지만…
++ 프로그램 실행시 도움을 주기위한 문구가 필요하다.
 “-install / -uninstall 로 입력해주세요.” 라든가..

Leave a Comment »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Create a free website or blog at WordPress.com.

%d bloggers like this: