성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] Java - How to use the Foreign Funct...
[정성태] 제가 큰 실수를 했군요. ^^; Delegate를 통한 Bein...
[정성태] Working with Rust Libraries from C#...
[정성태] Detecting blocking calls using asyn...
[정성태] 아쉽게도, 커뮤니티는 아니고 개인 블로그입니다. ^^
[정성태] 질문이 잘 이해가 안 됩니다. 우선, 해당 소스코드에서 ILis...
[양승조
] var대신 dinamic으로 선언해서 해결은 했습니다. 맞는 해...
[양승조
] 또 막혔습니다. ㅠㅠ var list = props[i].Ge...
[양승조
] 아. 감사합니다. 어제는 안됐던것 같은데....정신을 차려야겠네...
[정성태] "props[i].GetValue(props[i])" 코드에서 ...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <br /> <div class='mainCenterTitle'>Orcas - UAC 설정 관련</div><br /> <br /> 예전에 다음과 같은 글들을 남긴 적이 있었지요.<br /> <br /> <pre class='code'> VC++ : 5. 신뢰도 등급을 조절하는 방법(1) - Manifest 파일 이용 ; <a target='_tab' href='/2/0/445'>http://www.sysnet.pe.kr/2/0/445</a> VC++ : 6. 신뢰도 등급을 조절하는 방법(2) - 직접 코딩 ; <a target='_tab' href='/2/0/446'>http://www.sysnet.pe.kr/2/0/446</a> VS.NET IDE : 5. .NET 에서의 신뢰도 등급을 조절하는 방법 - Manifest 파일 이용 ; <a target='_tab' href='/2/0/450'>http://www.sysnet.pe.kr/2/0/450</a> </pre> <br /> 자... 이제 Orcas가 나왔습니다. 당연한 얘기겠지만, Orcas에서는 UAC를 위한 Manifest 설정을 편하게 할 수 있는 방법을 제공해 주고 있습니다.<br /> <br /> 먼저, VC++ 프로젝트에서는 어떻게 하는지 볼까요?<br /> <br /> <img alt='orcas_manifest_settings_1.png' src='/SysWebRes/bbs/orcas_manifest_settings_1.png' /><br /> <br /> 간단하지요! 위와 같이 설정창을 통해서 "UAC Execution Level"을 직접 지정하는 것이 가능합니다.<br /> 음... 더 설명할 것이 없군요. ^^;<br /> <a name='net_manifest'></a> <br /> 그럼, .NET 프로젝트에서는 어떻게 하는지 또 마저 살펴볼까요?<br /> 이 경우에는, 직접적인 프로젝트 설정창에서 제공해 주지 않고, 아래와 같이 "Application Manifest File" 유형의 항목을 추가하는 것에서 시작하게 됩니다.<br /> <br /> <img alt='orcas_manifest_settings_2.png' src='/SysWebRes/bbs/orcas_manifest_settings_2.png' /><br /> <br /> 그러면, 프로젝트에 'app.manifest' 라는 파일이 생성되고 내용은 다음과 같습니다.<br /> <br /> <pre class='code'> <?xml version="1.0" encoding="utf-8"?> <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> <!-- UAC Manifest Options If you want to change the Windows User Account Control level replace the requestedExecutionLevel node with one of the following . <requestedExecutionLevel level="<b>asInvoker</b>" /> <requestedExecutionLevel level="<b>requireAdministrator</b>" /> <requestedExecutionLevel level="<b>highestAvailable</b>" /> --> <b><requestedExecutionLevel level="asInvoker" /></b> </requestedPrivileges> </security> </trustInfo> </asmv1:assembly> </pre> <br /> <span style='text-decoration: line-through'> 이렇게 설정하고 빌드를 하고 나면, 왠지 대상 폴더에 "{응용 프로그램 이름}.exe.manifest" 라는 파일이 생성될 거라 기대가 되는데요.<br /> <br /> 음... ^^; 생성이 안되는 군요. "<a target='_tab' href='/2/0/450'>.NET 에서의 신뢰도 등급 조정 - Manifest 파일 이용</a>" 에서 설명했던 데로, 어쩔 수 없이 "Enable ClickOnce Security Settings" 항목을 체크해 둬야만 기대했던 대로 동작하게 됩니다.<br /> <br /> 요건 한번... 건의를 해봐야 겠습니다. ^^<br /> </span> <hr /> [내용 변경: 2007-06-12]<br /> 닷넷 프로젝트의 app.manifest를 하는 부분에서 제가 모르고 글을 쓰게 되었습니다.<br />알고 보니, app.manifest가 app.config 처럼 빌드 후에 별도로 외부 manifest로 존재하는 것이 아니라, 리소스로써 이미 포함되어 있었습니다. 따라서, 정상적으로 동작하는 것입니다.<br /> 참고로, manifest 관련한 빌드 옵션은 프로젝트 속성 창의 "Application" 탭의 "Resources" 그룹 상자안에 있는 "Icon and manifest"의 "Manifest" 콤보박스에서 "{manifest 파일명}", "Embed manifest with default settings", "Create application without a manifest" 값들 중의 하나를 택할 수 있습니다.<br /> <br /> 위와 같은 사항들은 다음의 토픽을 보고 알게 되었습니다. ^^<br /> <pre class="code"> UAC with .NET in Visual Studio 2008 ; <a target="_blank" href="https://docs.microsoft.com/en-us/archive/blogs/knom/uac-with-net-in-visual-studio-2008">https://docs.microsoft.com/en-us/archive/blogs/knom/uac-with-net-in-visual-studio-2008</a> </pre> <br /> 자... 그러고 보니, 외부 manifest 파일로 존재하도록 만드는 방법은 간단합니다. 왠지 아주 정석인 것 같은 방법은 아니지만. <br /> <pre class="code"> 1. "app.manifest" 파일을 "{응용 프로그램 실행 파일명}.manifest" 명으로 바꿉니다. 2. 속성창에서 "Copy to Output Directory" 값을 "Copy always 또는 Copy if newer"로 바꿉니다. </pre> 그럼, 된건가요? 이것으로, 리소스로 포함할 때와, 외부 파일로 빼고 싶은 때를 "Application" 탭에서 지정할 수 있게 되었습니다.<br /> <br /><br /><hr /><span style='color: Maroon'>[이 토픽에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1801
(왼쪽의 숫자를 입력해야 합니다.)