2012-10-01 4 views
0

매니페스트가 필요없는. NET 모듈 (어셈블리 매니페스트가 포함되지 않은 일반 어셈블리 만)을로드하려면 어떻게해야합니까?어셈블리 매니페스트가없는 .net 모듈을로드하는 방법

The module was expected to contain an assembly manifest 

은 일반적으로 내가 어셈블리 매니페스트에 추가 한 후 ILASM 사용하여 어셈블리를 컴파일하여이 문제를 해결할 수 :

.assembly test{ } 

그러나이되어 내가 그들을 실행하려고하면이 오류가 발생합니다 일부 어셈블리가 이 문제에 대한 다른 해결 방법은 있습니까? Assembly.LoadModule(...) 내 문제를 해결할 수 있습니까?

+0

그건 불가능합니다. .netmodule은 중간 파일 일 뿐이며 어셈블리를 생성하기 위해 연결될 때까지는 사용할 수 없습니다. –

+0

글쎄, "그런 어셈블리를 얻을 수 있었던 방법은 포장 된 어셈블리의 메모리 덤프에서 왔습니다." 패커는 LoadModule 메서드를 사용하여 어셈블리 매니페스트가 포함되지 않은 주 어셈블리를 실행합니다. LoadModule로 가능합니까? – method

답변

0

매니페스트는 여러 파일로 구성 될 수있는 논리 어셈블리의 일부입니다. 그 중 단 하나만 어셈블리 매니페스트 (다른 ​​모든 어셈블리 파일에 대한 링크)를 포함하므로 try-catch 블록을 만들고 주 어셈블리 모듈 만 성공적으로로드 할 수 있습니다.

+0

'try-catch 블록을 사용하고 주 조립체 모듈 만로드'한다는 의미를 얻지 못합니다. 그런 어셈블리를 가져올 수 있었던 방법은 압축 된 어셈블리의 메모리 덤프에서 발생했습니다. 문제는 매니페스트가 누락되었습니다. – method

+0

@Furious 나는 여러 어셈블리가있는 디렉토리가 있고 파일 이름으로로드하려고 시도했다고 생각했습니다. Try-catch 블록은 어셈블리로드 코드로 만들 수 있으므로 매니페스트가있는 어셈블리는로드되지 않고 어셈블리가로드되지만 어셈블리 파일 검색은 중지하지 않습니다. – FLCL