2011-08-09 7 views
0

런타임시 DLL의 경로를 변경할 수 있습니까? DLL을 연결해야하지만 사용자에게 DLL을 제공 할 수는 없지만 사용자가 DLL을 하드 디스크에 가지고 있다는 것을 알고 있습니다. 그래서 나는 경로를 입력 할 수있는 사용자에게 일반 폼을 보여 주었다. 그런 다음 그 경로 (문자열)를 가져 와서 dll을 동적으로 내 프로그램에로드해야한다. 로드 된 후에 해당 DLL의 내용을 사용합니다.런타임시 참조 된 DLL 경로 설정

어떻게 할 수 있습니까?

답변

0

Chris의 답변에 추가하십시오. 그것을

Assembly assembly = Assembly.LoadFile(pathOfAssembly); 
InterfaceName instance = (InterfaceName)assembly.CreateInstance("fully qualified type name", true); 
+0

내가 프로젝트의 DLL 참조를 해달라고 경우

공통 인터페이스에 대한 어셈블리 내 코드,로드 어셈블리 클래스를 반사를 사용하지 않도록하려면 당신은 다음과 같이 당신의 객체를 생성 할 수 있습니다 컴파일하지 마라. 그리고 참조를 추가하지만 DLL이 EXE에 있지 않은 경우 Main()이 호출되기 바로 전에 Exeption을 얻습니다! – GameScripting

+0

동적으로로드하는 DLL과 DLL을로드하는 응용 프로그램에 공통적 인 어셈블리에 인터페이스를 저장해야합니다. – jdavies

0

Assembly.LoadFile(pathOfAssembly) 메서드를 사용하여 경로에서 어셈블리 또는 dll을 동적으로로드 할 수 있습니다. 로드 된 후에는 포함 된 클래스의 인스턴스를 만들고 메소드를 호출 할 수 있습니다.