티스토리 뷰
비스타의 UAC(사용자 계정 컨트롤)에 대응하는 권한 상승 시키기
Vista 가 나오면서 응용 프로그램의 .manifest 를 추가함으로써 UAC 에 대응할 수 있는 권한 상승 효과를 얻을 수 있었습니다. 설치 프로젝트의 경우 VS2005 까지 그러한 기능이 제공 되지 않았기 때문에, 이번 VS2008 의 배포 프로젝트의 권한 상승 기능은 환영할 만합니다.
그럼 VS2005 버전(그 이하버젼) 에서는 어떻게 비스타 배포를 할 수 있는지 알아보죠.
1. .Manifest 를 작성하여 Setup.exe 와 Setup.exe.manifest 배포하기
간단히 실행파일(확장자포함).manifest 의 파일을 추가함으로써 권한 상승 효과를 볼 수 있습니다.
간단히 실행파일(확장자포함).manifest 의 파일을 추가함으로써 권한 상승 효과를 볼 수 있습니다.
2. .Manifest 를 리소스에 포함하여 Setup.exe 파일 배포
Windows SDK 의 mt.exe를 통해 manifest 정보를 리소스에 포함할 수 있습니다.
사용예) mt.exe /manifest MyApp.exe.manifest /outputresource:MyApp.exe;#1
Windows SDK 의 mt.exe를 통해 manifest 정보를 리소스에 포함할 수 있습니다.
사용예) mt.exe /manifest MyApp.exe.manifest /outputresource:MyApp.exe;#1
만약 서명된 어셈블리라면 리소스 포함 manifest 를 사용할 수 없습니다. 왜냐하면 서명된 이후 이셈블리가 변경이 가해졌기 때문에 실행될리 없겠죠.
VS2008 설치 프로젝트의 새로운 권한 상승 기능
아쉽게도, 이 기능은 VS2008 설치 프로젝트에서 어떠한 UI 도 제공하지 않습니다.
이게 무슨 뚱딴지 같은 소리냐! 맞습니다…
VS IDE 에서 이 옵션을 제어할 수 있는 어떠한 Property 도 제공되지 않습니다.
[그림1] VS IDE 의 Setup Project 의 권한 상승 기능 Property 가 제공되지 않는다
하지만, 실망할 것 없습니다. 간단하게 프로젝트 파일을 열어 약간의 속성을 변경해 주면 되기 때문이죠.
1. Setup Project 의 .vdproj 파일을 텍스트 편집기를 통해 엽니다
2. MsiBootstrapper의 RequireElevation 속성을 FALSE 에서 TRUE 로 변경합니다
만약, VS2005 의 설치 프로젝트를 VS2008 로 컨버팅 작업을 하게 되면, 위의 RequireElevantion 속성을 따로 넣어 주셔야 합니다. |
이렇게 한 후, 다시 컴파일 한 후에 Setup.exe 를 실행시켜 보면 권한 상승 요구 창이 뜨는 걸 확인할 수 있습니다.
이 기능이 IDE 의 Property 속성에 들어갔으면 참 편리할텐데 라고 생각하는데, 왜 꼬깃꼬깃 기능을 숨겨놓았는지 아이러니 하네요 ^^;
여기서 한가지 주의할 것은, MSI 설치 파일은 Setup.exe 와 다르게 권한 상승이 되지 않습니다. Orca Tool 이나 script 를 이용하여 권한 상승을 할 수 있는데, 다음 기회에 살펴보도록 하겠습니다.
'.NET > Visual Studio' 카테고리의 다른 글
[월간 마이크로소프트 5월호 특집기사] Windows 8 시대를 준비하는 Visual Studio 2012를 마치며 (1) | 2012.08.01 |
---|---|
[월간 마이크로소프트 5월호 특집기사] Windows 8 시대를 준비하는 Visual Studio 2012 (0) | 2012.08.01 |
Vista 에서 MSI 설치 파일 권한 상승 하기 (0) | 2008.03.09 |
[웹케스트] 설치 프로젝트를 이용하여 배포하기 #2 (1) | 2008.02.02 |
[웹케스트] 설치 프로젝트를 이용하여 배포하기 #1 (2) | 2008.02.01 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
- ***** MY SOCIAL *****
- [SOCIAL] 페이스북
- [SOCIAL] 팀 블로그 트위터
- .
- ***** MY OPEN SOURCE *****
- [GITHUB] POWERUMC
- .
- ***** MY PUBLISH *****
- [MSDN] e-Book 백서
- .
- ***** MY TOOLS *****
- [VSX] VSGesture for VS2005,200…
- [VSX] VSGesture for VS2010,201…
- [VSX] Comment Helper for VS200…
- [VSX] VSExplorer for VS2005,20…
- [VSX] VSCmd for VS2005,2008
- .
- ***** MY FAVORITES *****
- MSDN 포럼
- MSDN 라이브러리
- Mono Project
- STEN
- 일본 ATMARKIT
- C++ 빌더 포럼
- .
TAG
- test
- Team Foundation Server
- ALM
- LINQ
- ASP.NET
- mono
- 엄준일
- .NET
- .NET Framework 4.0
- 비주얼 스튜디오 2010
- monodevelop
- Visual Studio 11
- Visual Studio 2010
- umc
- POWERUMC
- Windows 8
- TFS 2010
- TFS
- c#
- testing
- github
- Visual Studio 2008
- Managed Extensibility Framework
- Team Foundation Server 2010
- Silverlight
- 비주얼 스튜디오
- 팀 파운데이션 서버
- 땡초
- MEF
- Visual Studio