찾으려고하는 어셈블리가 루트 어셈블리가 아닙니다. 참조 된 어셈블리이지만 동일한 폴더에 있고 Directory.GetCurrentDirectory()는 모든 파일이 들어있는 폴더입니다.리플렉션을 통해 앱을로드하려고하는데 "파일 또는 어셈블리를로드 할 수 없습니다 ... 시스템에서 지정한 파일을 찾을 수 없습니다."라는 오류 메시지가 나타납니다.
붙어있어 - 어떤 제안?
찾으려고하는 어셈블리가 루트 어셈블리가 아닙니다. 참조 된 어셈블리이지만 동일한 폴더에 있고 Directory.GetCurrentDirectory()는 모든 파일이 들어있는 폴더입니다.리플렉션을 통해 앱을로드하려고하는데 "파일 또는 어셈블리를로드 할 수 없습니다 ... 시스템에서 지정한 파일을 찾을 수 없습니다."라는 오류 메시지가 나타납니다.
붙어있어 - 어떤 제안?
다음 중 하나를 수행 할 수 있습니다
AppDomain
만들기 (모든 어셈블리를 포함하는 디렉토리에 AppDomain
의 기본 디렉토리를 설정).AppDomain.AssemblyResolve
에 대한 처리기를 연결하면 CLR에서 어셈블리의 종속성을 쉽게 찾을 수 있습니다.당신은 어셈블리가 실행되는 실제 디렉터리를 얻어야한다이
string myDll = string.Empty;
string location = Assembly.GetExecutingAssembly().Location;
if (location != null)
{
myDll = string.Format(@"{0}\my.assembly.name.dll", location.Substring(0, location.LastIndexOf(@"\")));
}
이 같은 것을 사용하여 시도 할 수 있습니다. 이것은 Windows .NET 임시 디렉토리에있을 수 있습니다. 그러나 파일은 같은 레벨에 있기 때문에 나란히 존재해야합니다.
assembly.loadfrom을 사용하는 경우 어셈블리에 대한 파일 경로를 지정할 수 있습니다.
은로드에서 컨텍스트는 어셈블리 프로빙에 포함되지 경로에서로드 아직 경로 정보에 의해 유지되기 때문에 그 경로 종속성 발견하고로드 할 수있게 할 수 있도록 컨텍스트.
참조 된 DLL이있는 폴더에서 프로그램을 실행하면 문제를 해결할 수도 있습니다.