Microsoft MVP성태의 닷넷 이야기
Windows: 28. Vista에서 끌어다 놓기로 GAC 등록하는 방법 [링크 복사], [링크+제목 복사],
조회: 22086
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 2개 있습니다.)

Vista에서 끌어다 놓기로 GAC 등록하는 방법


Vista에서 UAC 모드를 활성화시켜놓고 사용하시다 보면,,, 불편한 점이 사실 이만저만이 아닙니다. 개발자라면 그 상황이 더욱 많아지는데요. 그 중에 하나가 바로 GAC 등록입니다.

GAC 등록을 가장 단순하게 하는 방법 중의 하나가 "Drag & Drop"인데요. 이 방법이 Vista UAC 상태에서는 다음과 같이 "Access is denied"라는 오류 메시지를 내게 됩니다.

vista_gac_drag_drop_regist_1.png

왜냐하면, GAC 등록은 관리자 권한이 필요한 반면 explorer.exe 자체는 제한된 사용자 계정으로 실행되어져 있기 때문입니다.




이것을 해결하라면, "cmd.exe"를 "Run as administrator"로 띄우고, 그 상태에서 아래와 같이 gacutil.exe를 직접 실행시켜서 해결하는 것이 가장 좋습니다.

D:\temp\ClassLibrary1\bin\Debug>gacutil /i ClassLibrary1.dll
Microsoft (R) .NET Global Assembly Cache Utility.  Version 2.0.50727.42
Copyright (c) Microsoft Corporation.  All rights reserved.

Assembly successfully added to the cache

그런데... 예전 경험을 되살려서 이번에도 다른 식으로 해결해 보고 싶었습니다. 기억하시는 분들이 계실지 모르겠지만, "MIC 환경 구성 - Windows XP와 유사한 보안 설정"에서 "explorer.exe"를 영구적으로 high 권한으로 설정하는 방법을 소개해 드렸는데요.

그때와 다른 점이 있다면, 이번에는 "explorer.exe"를 원할 때만 high 권한으로 올린 후, GAC 등록을 하고 다시 medium 권한으로 내려야 한다는 점인데요.

방법은 그다지 어렵지 않습니다. ^^

  1. Cmd.exe를 우선 "Run as Administrator"를 통해서 실행시켜 둔다.
  2. 작업 관리자를 실행시키고, "Explorer.exe" 프로세스를 강제 종료 한다.
  3. 1번 단계에서 관리자 권한으로 실행시켜 두었던 cmd.exe에서 "explorer.exe"를 입력해서 실행시킨다.
  4. "high" 신뢰도 등급을 가지고 있는 explorer.exe에서 "Drag&Drop"을 통해서 GAC에 해당 어셈블리를 등록한다.
  5. 2번 단계에서 실행시켜 두었던 작업 관리자에서 "explorer.exe"를 다시 종료시키고, 작업 관리자의 실행 메뉴를 통해서 "explorer.exe"를 재실행 시킨다.

좀 복잡한가요? ^^ 어쨌든, 뭐 그런대로 임시로 explorer.exe를 high 권한으로 원하는 기간동안 올려놓고 다시 내릴 수 있는 방법을 알게 된 정도로 만족하시면 될 것 같습니다.

참고로, 작업관리자에서 프로세스 강제종료를 싫어하시는 분들은 이전에 소개해 드렸던 다음의 방법을 통해서 explorer.exe를 스스로 종료하게 하는 방법을 참고하시면 되겠습니다.

명시적으로 지원되는 Windows Explorer 종료 방법 
; https://www.sysnet.pe.kr/2/1/896




[이 토픽에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 6/28/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 



2008-01-29 04시51분
[김태형] 재미있네요...(지난 토요일에 정환이랑 같이 만났던 사람입니다)
[guest]
2008-01-29 05시24분
음... 김태형 님은 알겠는데... 정작 "정환" 이란 분이 누군지... 모르겠습니다. ^^;
kevin25

1  2  3  4  5  6  7  8  9  10  11  12  13  14  [15]  ...
NoWriterDateCnt.TitleFile(s)
13273정성태2/28/20234345.NET Framework: 2099. C# - 관리 포인터로서의 ref 예약어 의미
13272정성태2/27/20234592오류 유형: 850. SSMS - mdf 파일을 Attach 시킬 때 Operating system error 5: "5(Access is denied.)" 에러
13271정성태2/25/20234580오류 유형: 849. Sql Server Configuration Manager가 시작 메뉴에 없는 경우
13270정성태2/24/20234081.NET Framework: 2098. dotnet build에 /p 옵션을 적용 시 유의점
13269정성태2/23/20234717스크립트: 46. 파이썬 - uvicorn의 콘솔 출력을 UDP로 전송
13268정성태2/22/20235219개발 환경 구성: 667. WSL 2 내부에서 열고 있는 UDP 서버를 호스트 측에서 접속하는 방법
13267정성태2/21/20235113.NET Framework: 2097. C# - 비동기 소켓 사용 시 메모리 해제가 finalizer 단계에서 발생하는 사례파일 다운로드1
13266정성태2/20/20234758오류 유형: 848. .NET Core/5+ - Process terminated. Couldn't find a valid ICU package installed on the system
13265정성태2/18/20234636.NET Framework: 2096. .NET Core/5+ - PublishSingleFile 유형에 대한 runtimeconfig.json 설정
13264정성태2/17/20236239스크립트: 45. 파이썬 - uvicorn 사용자 정의 Logger 작성
13263정성태2/16/20234392개발 환경 구성: 666. 최신 버전의 ilasm.exe/ildasm.exe 사용하는 방법
13262정성태2/15/20235474디버깅 기술: 191. dnSpy를 이용한 (소스 코드가 없는) 닷넷 응용 프로그램 디버깅 방법 [1]
13261정성태2/15/20234850Windows: 224. Visual Studio - 영문 폰트가 Fullwidth Latin Character로 바뀌는 문제
13260정성태2/14/20234591오류 유형: 847. ilasm.exe 컴파일 오류 - error : syntax error at token '-' in ... -inf
13259정성태2/14/20234749.NET Framework: 2095. C# - .NET5부터 도입된 CollectionsMarshal
13258정성태2/13/20234575오류 유형: 846. .NET Framework 4.8 Developer Pack 설치 실패 - 0x81f40001
13257정성태2/13/20234667.NET Framework: 2094. C# - Job에 Process 포함하는 방법 [1]파일 다운로드1
13256정성태2/10/20235414개발 환경 구성: 665. WSL 2의 네트워크 통신 방법 - 두 번째 이야기
13255정성태2/10/20234825오류 유형: 845. gihub - windows2022 이미지에서 .NET Framework 4.5.2 미만의 프로젝트에 대한 빌드 오류
13254정성태2/10/20234749Windows: 223. (WMI 쿼리를 위한) PowerShell 문자열 escape 처리
13253정성태2/9/20235547Windows: 222. C# - 다른 윈도우 프로그램이 실행되었음을 인식하는 방법파일 다운로드1
13252정성태2/9/20234340오류 유형: 844. ssh로 명령어 수행 시 멈춤 현상
13251정성태2/8/20234727스크립트: 44. 파이썬의 3가지 스레드 ID
13250정성태2/8/20236618오류 유형: 843. System.InvalidOperationException - Unable to configure HTTPS endpoint
13249정성태2/7/20235461오류 유형: 842. 리눅스 - You must wait longer to change your password
13248정성태2/7/20234378오류 유형: 841. 리눅스 - [사용자 계정] is not in the sudoers file. This incident will be reported.
1  2  3  4  5  6  7  8  9  10  11  12  13  14  [15]  ...