어떤 DLL이 오류를 일으키는지 어떻게 알 수 있나요?

어떤 DLL이 오류를 일으키는지 어떻게 알 수 있나요?

배경:

SQL Server 2012 Data Tools 및 Visual Studio 2010 및 2012가 설치된 Windows 7.

Visual Studio에서 새 SSIS 프로젝트를 만들려고 하면 다음 오류가 발생합니다.

Microsoft.DataTransformationServices.Project.SharedIcons의 유형 이니셜라이저에서 예외가 발생했습니다. C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies의 잘못된 dll로 인해 이 문제가 발생했다고 거의 확신합니다.

질문: 런타임에 응용 프로그램이 어떤 dll을 로드하는지 추적할 수 있는 방법이 있습니까?

나는 또한 다음을 시도했습니다.

C:>tasklist /m /fi "이미지 이름 eq devenv.exe "

하지만 상대적으로 도움이 되지 않는 결과만 얻습니다.

Image Name                     PID Modules
========================= ======== ============================================
devenv.exe                    2784 ntdll.dll, wow64.dll, wow64win.dll,
                                   wow64cpu.dll
devenv.exe                    6836 ntdll.dll, wow64.dll, wow64win.dll,
                                   wow64cpu.dll

또한 이것이 Visual Studio 문제가 아니라 VS를 셸로 사용하는 SSDT-BI 문제이지만 SSDT-BI에 대한 SU 태그가 없다는 것을 알고 있습니다.

답변1

이 블로그 게시물Scott Hanselman은 어셈블리 로딩 오류를 디버깅하는 몇 가지 기술을 제공합니다. 나는 둘 다 추천하고 싶다퓨전 로그접근하거나프로세스 탐색기접근하다.

Visual Studio가 설치되어 있는 경우 어셈블리 바인딩 로그 뷰어(Fusion Log Viewer)를 설치해야 합니다. Windows SDK의 일부로 설치됩니다. 내 컴퓨터의 경로는 다음과 같습니다. c:\program files (x86)\microsoft sdks\windows\v8.0a\bin\NETFX 4.0 Tools\FUSLOGVW.exe "설정" 버튼에서 "디스크에 대한 모든 바인딩 기록"을 활성화하여 로깅을 활성화할 수 있습니다.

로깅이 활성화되면 오류를 생성하고 "새로 고침"을 클릭하여 로드된 모든 어셈블리를 확인하세요.

관련 정보