2010-11-30 3 views
1

프로젝트에서 우리는 객체 설정에 따라 .dll을 동적으로로드합니다. ILMerge 이전에는 정상적으로 작동했습니다. 이제 ILMerge를 사용하고 하나의 .dll을 만들었지 만로드가 실패합니다. .dll이 ILMerged 후에 어떻게 동적으로 .dll을로드합니까? 우리는 VS2008과 C#을 사용하고 있습니다.ILMerge 뒤의 동적로드

DLLS : Common.dll, CommonMedical.dll

NEW DLL : DMCommon.dll

.DLL로드 실패

현재 코드 :
ASM = Assembly.LoadFrom이 ("CommonMedical.dll을");

내가 뭘 잘못하고 있니? 심지어 시도해 보았습니다 .Load, ILMerging없이 작동하기 때문에 이름 공간에 문제가 없습니다. 미리 감사드립니다,

크레이그

+0

중복 된 http://stackoverflow.com/questions/3394325? – marr75

+0

오류에 대한 자세한 내용은 무엇입니까? –

+0

가능한 복제본 [.NET Reflection을 통해 클래스를 인스턴스화 할 수 없습니다. ILMerge와 병합] (http://stackoverflow.com/questions/3394325/unable-to-instantiate-the-class-through-net-reflection-merged-with-ilmerge) –

답변

1

확실한 대답은, 당신의 코드를 변경 : ASM = Assembly.LoadFrom이 ("DMCommon.dll");

새로 병합 된 어셈블리 파일을 만들었으며 파일 이름을 사용하여로드하는 LoadFrom을 사용하고 있습니다.

+0

내 편이 좀 혼란스러워해야합니다 ... 대답으로 .LoadFrom을 사용하지만 내 오류는 파일 이름을 사용하여로드하는 LoadFrom을 사용한다고 말합니다. 명확히하십시오 - 고마워요! – cbuck12000

+0

Preet Sangha가 내 원래 게시물에 두 번째 문장을 추가했습니다. LoadFrom API는 네임 스페이스가 아닌 드라이브의 어셈블리 이름을 사용하기 때문에 병합 된 어셈블리의 새 이름을 사용해야합니다. –

+0

와우, 게시물에 혼란 스러웠습니다. 나는 당신이 제안한 것을 시도했지만 어셈블리를 찾지 못하면 여전히 오류가 발생합니다. – cbuck12000