2010-12-14 13 views
3

내 프로젝트에서 일부 DLL을 사용하고 있습니다. '.exe'파일을 만들기 위해 솔루션 구성에서 'Released'만 사용했습니다. 내 컴퓨터에서 exe 파일은 작동하지만 다른 파일에는 "파일 X을로드 할 수 없습니다 ..."라는 오류가 있습니다. X는 dll 파일입니다. 이 문제를 어떻게 해결할 수 있습니까? 모든 dll 파일을 프로젝트 빈에 복사했습니다.C# 라이브러리와 함께 ".exe"생성

답변

1

EXE 파일과 동일한 폴더에 DLL을 복사하십시오. 하위 디렉토리에 넣으면 app.exe.config 파일에서 <probing> 요소를 사용해야 CLR에서 찾을 수 있습니다.

+2

나는 같은 디렉토리에 있지만 다른 컴퓨터에서 내 응용 프로그램을 사용하여 exe 파일 만 사용하고자합니다. 어떻게해야합니까? – user449921

+0

SmartAssembly 또는 DeepSea와 같은 타사 도구를 사용하여 실행 파일 내에 dll을 포함하거나 IL 병합을 사용하여 어셈블리를 병합 할 수 있습니다. 또는 설치 도구를 만들고 배포하거나 ClickOnce 배포를 사용할 수도 있습니다. – Guy

+2

원래 질문과 관련이 있습니까? 구글'ilmerge' –

1

DLL에 대한 종속성이 필요하지 않은 경우 프로젝트의 "참조"아래에서 마우스 오른쪽 단추로 클릭하고 제거하십시오. 종속성이 필요한 경우 EXE를 사용하여 다른 컴퓨터로 이동해야합니다.

0

위의 대답은 의존성 라이브러리를로드하는 일반적인 사항입니다. 그러나, 그것은 또한 exe 라이브러리를로드하는 방법에 따라 달라질 수 있습니다. 예를 들어 MEF에는 특정 폴더에서 카탈로그 라이브러리를로드하는 DI 엔진이 있습니다. 필요한 라이브러리가 없으면 비슷한 예외가 발생할 수 있습니다. 특정 종속성에 대한 .exe 요구 사항을 확인하십시오.

관련 문제