티스토리 뷰
Fuslogvw.exe
Fuslogvw.exe 는 닷넷 어셈블리(EXE,DLL) 의 바인딩 정보를 관찰할 수 있는 유틸리티이다. 닷넷 어셈블리가 어떤 버전의 참조를 하고 있는지, GAC 으로부터 바인딩 되는지 잘 살펴볼 수 있는 유용한 도구이다.
이 도구를 이용하여 다음과 같은 특정 오류에 대한 자세한 내용을 볼 수 있다. (MSDN 도움말 참조)
l "파일을 찾을 수 없습니다." 또는 "버전이 일치하지 않습니다." 등 바인드가 실패한 특정 원인
l 이름, 응용 프로그램의 루트 디렉터리(AppBase) 및 개인 검색 경로(있는 경우)의 설명 등을 포함하여 바인드를 시작한 응용 프로그램에 대한 정보
l 도구에서 찾고 있는 어셈블리의 ID
l 적용된 응용 프로그램, 게시자 또는 관리자 버전 정책 설명
l 전역 어셈블리 캐시에 어셈블리가 있는지 여부
l 검색하는 모든 URL 목록
물론 이 도구에 대한 설명은 MSDN 도움말에 잘 나와 있지만, MSDN 을 즐겨하지 않는 분에겐 스크린샷과 함께 설명이 잘 된 다음의 URL 을 참고 하면 될 것이다.
Loner’s .NET Blog - Fusion Log Viewer: Fuslogvw.exe
MSDN - 어셈블리 바인딩 로그 뷰어 ( fuslogvw.exe )
특히 스마트클라이언트에서 참조된 어셈블리가 제대로 다운로드 되었는지, Cache 에서 참조되었는지, 혹은 GAC 에서 참조되었는지 잘 알 수 있다.
이 부분에 대해선 이미 본 블로그의
스마트클라이언트 다운로드 비교 ( Infragistics 컴포넌트 ) 아티클에서 잘 보여주고 있다.
또 다른 활용 방안
위에서 살펴 보았듯이, 어셈블리의 바인딩 정보를 볼 수 있는 도구가 fuslogvw.exe 라고 하였다. 만약 하나의 어셈블리가 여러 개의 어셈블리를 참조하고 있게 되면, 순차적으로 log 폴더에 각 어셈블리별로 바인딩 되는 정보를 볼 수 있다. 더불어, 해당 어셈블리가 참조하는 .NET Framework 어셈블리의 바인딩 정보마저 로그에 기록된다. 때문에, 바인딩 될 .NET Framework 2.0 의 어셈블리가 .NET Framework 1.1, 1.0 어셈블리를 참조하게 되어, 스마트클라이언트가 제대로 동작하지 않게 되는 경우도 이 도구로 원인을 알 수 있다.
[그림1] Fiddler 다운로드 스크린샷
위 그림은 현재 본인이 투입되어 있는 프로젝트의 스마트클라이언트 다운로드 캡춰이다. ( 보안상 모자이크 처리 하였으니 양해 바랍니다 ) 쓸대없는 리소스를 찾아헤메는 보기싫은 404 오류는 이미지를 캡춰하기 위해 제거한 상태이다.
지금 위 [그림1] 을 보여주는 이유는 fustion log viewer 가 바인딩 시점의 시간을 알려주기 때문에, 그것에 아이디어를 얻어 어셈블리가 다운로드 순차적으로 다운로드 하며, 웹페이지에 엠베디드 되기까지의 시간을 재기 위한 것이다.
방법은 무척 간단하다. Fuslogvw.exe 의 설정에서 모든 바인딩을 디스크에 기록하기만 하면 된다. Iexplore.exe 에 의해 바인딩 되는 여러 어셈블리는 iexplore.exe 라는 폴더에 참조된 .NET Framework 와 어셈블리의 모든 로그가 기록 될 것이다. 모든 어셈블리의 로그가 html 파일로 기록이 되었다면, 폴더의 파일들을 시간순으로 정렬해보자. 그럼, 가장 늦은 시간의 어셈블리 바인딩 시간과 가장 빠른 시간의 어셈블리 바인딩의 시간차를 구하게 되면 바인딩 총 시간을 구할 수가 있다. 모든 Download Cache 와 인터넷 임시 파일을 삭제한 후, 최초 어셈블리 다운로드의 시간과 Download Cache 로부터의 바인딩 시간 등 비교할 수도 있다.
마치며…
본 블로그의 아티클을 보게 된다면, 반드시 Loner’s .NET Blog 와 MSDN 의 링크를 꼭 확인하여, 좀 더 정확한 정보를 얻길 바란다. 위 링크에는 레지스트리를 수정하여 공용 언어 런타임의 바인딩 로그를 기록하는 방법 또한 수록되어 있다.
'.NET > Smart Client' 카테고리의 다른 글
스마트클라이언트의 다운로드 비교 ( Infragistics 컴포넌트 ) (0) | 2007.09.20 |
---|---|
실전 스마트클라이언트의 디버깅 (0) | 2007.09.05 |
스마트클라이언트와 익스플로러 연동 (4) | 2007.08.16 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- 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
- MEF
- .NET Framework 4.0
- Visual Studio 11
- ALM
- Windows 8
- Team Foundation Server 2010
- monodevelop
- testing
- 비주얼 스튜디오 2010
- TFS
- Visual Studio
- TFS 2010
- ASP.NET
- 팀 파운데이션 서버
- 땡초
- Visual Studio 2008
- LINQ
- Managed Extensibility Framework
- Team Foundation Server
- 비주얼 스튜디오
- c#
- 엄준일
- POWERUMC
- umc
- Visual Studio 2010
- .NET
- test
- Silverlight
- mono
- github