단위 테스트에서 C# "어셈블리 명함 불일치"오류를 디코딩
C# Wind 이 안내서는이 일반적인 .NET 어셈블리 로딩 문제 뒤에 미스터리를 풀어줍니다.
핵심 문제는 .NET 어셈블리 로더 내에 있으며 외부 어셈블리를 찾아로드하는 일을 담당합니다. 이 로더는 프로젝트 참조의 정보에 대해 어셈블리의 버전, 문화 및 공개 키 토큰을 세 심하게 확인합니다. 오류로 표시된대로 불일치는 잘못된 어셈블리가로드됩니다.
오류 메시지는 종종 충돌을 강조합니다. 예를 들어, "유틸리티"어셈블리의 버전 1.2.0.203에 대한 참조이지만 로더는 버전 1.2.0.200을 찾습니다.
솔루션에는 응용 프로그램에 올바른 버전 (1.2.0.203)이 액세스 할 수 있습니다. 두 가지 주요 접근법이 있습니다 :
글로벌 어셈블리 캐시 (GAC) :
명령을 사용하여 올바른 어셈블리를 GAC에 설치하십시오 :
응용 프로그램의 경로 :
또는 응용 프로그램의 실행 경로에 올바른 파일을 직접 배치하십시오.
어셈블리 나피퍼로 문제 해결 :
어셈블리의 위치가 확실하지 않은 경우 어셈블리 스니퍼와 같은 도구가 도움이 될 수 있습니다. 이 유틸리티는 특정 기준 (버전, 공개 키 토큰 등)과 일치하는 어셈블리에 대한 파일 시스템을 검색하여 충돌 버전을 정확히 찾아냅니다.
어셈블리 버전의 불일치를 해결함으로써 .NET 어셈블리 로더는 의도 한 어셈블리를 올바르게로드하여 "어셈블리 매니페스트 불일치"오류를 해결하고 문제없이 장치 테스트를 실행할 수 있습니다.
위 내용은 C# 단위 테스트가 '어셈블리가 표시되는 불일치'오류로 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!