쵸코코딩/Apps

.NET/SmartClient - Debugging- #3.fuslogvw.exe

OK_SON 2020. 4. 13. 09:28

■ Fuslogvw.exe

 

Fuslogvw.exe 는 닷넷 어셈블리(EXE,DLL) 의 바인딩 정보를 관찰할 수 있는 유틸리티

닷넷 어셈블리가 어떤 버전의 참조를 하고 있는지, GAC 으로부터 바인딩 되는지 잘 살펴볼 수 있는 유용한 도구 

 

- 스마트 클라이언트 시나리오에서 어셈블리가 어떻게 다운로드 되고, 닷넷 런타임 로더가 어떤 디렉터리에서 어셈블리를 찾는가를 추적하는데 대단히 유용한 유틸리티

 

"파일을 찾을 수 없습니다." 또는 "버전이 일치하지 않습니다." 등 바인드가 실패한 특정 원인

이름, 응용 프로그램의 루트 디렉터리(AppBase) 및 개인 검색 경로(있는 경우)의 설명 등을 포함하여 바인드를 시작한 응용 프로그램에 대한 정보

도구에서 찾고 있는 어셈블리의 ID

적용된 응용 프로그램, 게시자 또는 관리자 버전 정책 설명

전역 어셈블리 캐시에 어셈블리가 있는지 여부

검색하는 모든 URL 목록

 

 

Loner’s .NET Blog - Fusion Log Viewer: Fuslogvw.exe

http://www.simpleisbest.net/archive/2006/05/10/627.aspx

 

MSDN - 어셈블리 바인딩 로그 뷰어 ( fuslogvw.exe )

http://msdn.microsoft.com/library/kor/default.asp?url=/library/KOR/cptutorials/html/assembly_binding_log_viewer_deployment.asp

 

특히 스마트클라이언트에서 참조된 어셈블리가 제대로 다운로드 되었는지, Cache 에서 참조되었는지, 혹은 GAC 에서 참조되었는지 잘 알 수 있다.

 

스마트클라이언트 다운로드 비교 ( Infragistics 컴포넌트 ) 아티클에서 잘 보여주고 있다.

http://umc.pe.kr/article/2007/09/20/SmartClient-Download-With-Infragistics-Component.aspx



출처: https://blog.powerumc.kr/52 ["엄준일"과 함께하는 소프트웨어를 위한 플랫폼 이야기]

 

 

.NET Framework 버전 확인

Windows SDK(소프트웨어 개발 키트)와 함께 제공된 어셈블리 바인딩 로그 뷰어(Fuslogvw.exe)를 사용하여 로드되는 런타임 버전을 확인할 수도 있습니다. 이 도구는 전역 어셈블리 캐시 대신 응용 프로그램 디렉터리에서 어셈블리가 로드되고 있는지 확인하고 모든 어셈블리 바인딩의 성공 여부를 확인하는 데도 사용할 수 있습니다.

기본적으로 어셈블리 바인딩 로그 뷰어는 실패한 어셈블리 바인딩만 기록합니다.

 

모든 어셈블리 바인딩을 기록하려면 레지스트리에 항목을 만들어야 합니다.

HKLM\Software\Microsoft\Fusion\ForceLog 레지스트리 값을 1로 설정합니다(값은 DWORD임).

 

응용 프로그램이 시작되면 .NET Framework 버전 1.1의 경우 mscorlib, 버전 1.0.3300이 표시되고 .NET Framework 버전 1.1의 경우 mscorlib, 버전 1.1.4322가 표시되며 .NET Framework 버전 2.0의 경우 mscorlib, 버전 2.0.xxxx가 표시됩니다. 또한 fusion.dll이 로드된 경로를 보고 로드된 런타임 버전을 확인할 수도 있습니다