어셈블리가 실제로 존재하는 경우“System.io.fileNotFoundException : 파일 또는 어셈블리를로드 할 수 없음”

StackOverflow https://stackoverflow.com/questions/1540887

문제

.NET 1.1에서 .NET 3.5로 마이그레이션의 일환으로 몇 가지 벤더 DLL을 변경해야했습니다.

그들 중 하나는 우리가 사용하는 4 개의 지점 중 1 자리만으로도 우리에게 문제를 일으키고 있습니다.

문제점은 반사를 사용하여 긴 실행 프로세스를 실행하는 일부 DLL을 동적으로로드하는 Windows Form 프로젝트입니다. 이러한 장기적인 프로세스 중 하나는 벤더 DLL 중 하나에 의존하는 에이전트입니다.

우리는 라이브러리를 참조하는 함수를 처음 입력하는 시점에서 누락 된 어셈블리 예외를 얻고 있습니다. 이전 버전에서 새 버전으로 참조를 옮기는 것을 잊어 버린 것과 같은 어리석은 것들을 이미 확인했지만 그렇지 않습니다. 또한 프로젝트의 빈 디렉토리를 확인했으며 어셈블리가 있습니다.

.NET 2.0 런타임이 그런 어셈블리로드를 거부하는 상황을 만난 사람이 있습니까? 그렇다면 어떻게 문제를 해결할 수 있습니까?

추가 정보:

이 경우 특정 공급 업체는 DTSearch이며 오류가 발생하는 경계입니다.

Private Sub BuildIndex()
    SetIndexOptions()
    ExecuteIndexJob()
End Sub

Private Sub SetIndexOptions()
    'Body removed for brevity
End Sub

라이브러리는 setIndexoptions에서 참조됩니다. BuildIndex() 입력되지만 SetIndExoptions가 호출되면 예외가 발생합니다. 기능은 실제로 입력되지 않습니다.

도움이 되었습니까?

해결책 3

기본 컴파일 옵션이 VS2003에서 vs2008로 변경되었으며 잘못된 물린 상태로 컴파일하고있었습니다. 이제 조금 어리석은 느낌이 듭니다!

다른 팁

여전히 문제가있는 경우 사용할 수 있습니다. 어셈블리 바인딩 로그 뷰어 (fuslogvw.exe) 응용 프로그램에서로드되는 어셈블리를 식별합니다. 이 도구는 .NET 프레임 워크의 일부입니다. 이것은 모든 종속 어셈블리에 대한 세부 정보를 제공합니다.

나는 과거에 타사 어셈블리와 함께 일할 때 이것을 사용했습니다.

종속 어셈블리 중 하나를로드 할 수없는 경우 어셈블리가 존재하는 경우에도 filenotFoundException을 올릴 수 있습니다.

사용해보십시오 의존성 워커 모든 종속 어셈블리가 있는지 확인하고 확인합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top