2012-10-11 3 views
4

이 문제를 조사한 결과 그물에 대한 많은 항목이 발견되었지만 이해할 수있는 항목이 없습니다. 너는 도울 수 있니? 나는 (C 스크립트에서 생성 된) dll 파일을 가지고 있으며, 프로그램을 위해 Visual C# 2010을 사용하여 GUI를 만들었다. 5 가지 컴퓨터에서 응용 프로그램을 테스트했습니다. 내 컴퓨터와 응용 프로그램을 만든 컴퓨터에서 사용자 인터페이스와 프로그램이 아무런 문제없이 실행됩니다. 그러나 내가 다른 컴퓨터에 전달할 때 프로그램의 실행 후 (사용자 인터페이스가 열리는 것을 의미하지만, 모든 값을 삽입하고 dll 파일에 저장된 코드를 실행하면 errir가 수신 됨) "파일 또는 어셈블리"ParsingDll.dll "또는 해당 종속성 중 하나를로드 할 수 없습니다. 지정한 모듈을 찾을 수 없습니다."Visual C# "파일 또는 어셈블리 또는 해당 종속성 중 하나를로드 할 수 없습니다."

모든 컴퓨터는 Microsoft Windows 7을 실행하며 64 비트입니다. dll 파일 "ParsingDll.dll"은 내 코드가 GUI에서 실행되는 파일이며 실행 파일과 동일한 폴더에 있습니다.

누군가가 이걸 가지고 나를 도울 수 있고, 이런 종류의 물건에 새로운 메신저로 나와 함께 단계별로 취할 수 있다면 고맙습니다.

여러분 모두에게 감사드립니다.

+0

프로젝트와 함께 C DLL을 만드는 데 사용한 dll을 포함해야합니다. –

+0

오류 메시지 전체가 중요합니다. "파일 또는 어셈블리"ParsingDll.dll "** 또는 해당 종속성 ** 중 하나를로드 할 수 없습니다." (강조가 추가됨). ParsingDll.dll이 제대로 작동하지만 필요한 것은 아닙니다. – Bevan

+0

네이티브 DLL에 어떤 종속성이 있는지 잘 모르는 경우 SysInternals의 ProcMon 유틸리티에서 알려줍니다. DLL을 찾고 찾지 못한 프로세스가 표시됩니다. 높은 확률은 msvcrxxx.dll이라는 파일이며 xxx는 숫자입니다. C 프로젝트의/MT 컴파일 옵션과의 종속성을 피할 수 있습니다. –

답변

6

사용 된 어셈블리 중 하나에는 사용할 수없는 (기본) 라이브러리가 필요할 수 있습니다.

당신은 문제의 원인을 정확하게 알아 융합 로깅을 사용할 수 있습니다

: 융합 로더가 어셈블리를 찾습니다

이,로드되는 것을 기록하고 을 레지스트리에 융합 로깅을 설정 :

은에 다음 값을 추가

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion 

추가 :

DWORD ForceLog set value to 1 
DWORD LogFailures set value to 1 
DWORD LogResourceBinds set value to 1 
String LogPath set value to folder for logs e.g. C:\FusionLog\ 

이 폴더가 존재해야하며, 백 슬래시

(How to enable assembly bind failure logging (Fusion) in .NET에서 복사 명령)

+0

Fusion은 네이티브 DLL에 대한 종속성을 추적하지 않습니다. –

+0

@HansPassant는 귀하의 이름을 기반으로합니다. 나는 자신을 의심하고 있습니다. 그러나 나는 한 번 이상 그것을 보았습니다. 'Native'/ 'Managed'IIRC에서 잘 분리 된 로그 디렉토리 구조를 얻었습니다 – sehe

+1

"네이티브 이미지"가로드되는 것을 보았습니다. 어셈블리를 미리 jitting하여 ngen.exe에서 생성 한 이름은 ".ni.dll" –

0

가져 오기 DLL을 종료하고, dll을 포함하여 모든 프로젝트를 컴파일합니다. 필요한 경우 컴퓨터를 새로 고침하고 재시작하고 재부팅하십시오. 컴퓨터에 DLL이 있는지 확인하십시오. 다시 부팅, 새로 고침, 다시 컴파일, 정리하면 해결됩니다.

+0

무슨 도움이 될까요? 프로그램이 하나의 컴퓨터에서 실행되면 (이미 컴파일 된 상태) - 다시 컴파일해도 문제가 해결되지 않습니다. 이것은 표준 IT 지원 인력처럼 사용자에게 컴퓨터를 3 번 ​​재부팅하고 작동하는지 확인하는 것처럼 들린다. 다른 사용자가 명시한 바와 같이 - 작동하지 않는 컴퓨터에 환경 문제가 있습니다 (DLL 누락, AV 차단, 기타). – tsells

0

ParsingDll.dll이 차단되어 있는지 확인하십시오. dll 파일의 속성을 보면 확인할 수 있습니다. 차단 된 경우 '차단 해제'버튼이 표시됩니다.

+0

나는 그것을 시도했다, 그것은 didnt 일한다. – badmanjoe

관련 문제