2009-06-08 3 views
2

dllmap 구성 파일 항목은 Windows DLL에 대한 요청을 Linux (.so) 라이브러리에 매핑하는 데 Mono에서 사용됩니다. 그러나 Microsoft의 .NET 프레임 워크가 해당 항목으로 구성 파일을 구문 분석하려고하면 "dllmap"을 이해하지 못하기 때문에 오류가 발생하는 것 같습니다. 내 배포판의 다른 모든 것들은 Linux와 Windows XP 모두에서 변경없이 배포 될 수 있다고 생각합니다. 이것에 관련된 모든 이식성 중,이 구성 항목은 정말 몰락입니까? 하나의 비 휴대용 조각입니까? 플랫폼간에이 파일을 공유하는 방법이 없습니까?App.config dllmap 항목 이식성

답변

2

"dllmap"항목이 필요합니까? 당신은 자동 맵핑 "somelibrary"를 "somelibrary.dll"(Windows) 및 "somelibrary.so"(Linux)에 의존 할 수 없습니까?

게다가, 프레임 워크가 그냥 기대하지 않는 항목을 ... 생략 I 불구하고

편집 : 리눅스 라이브러리를 제공하는 표준 방법은 최신 버전으로 버전없는 심볼릭 링크를 가리키는 것입니다. 따라서 libfmodex.so을 추가하면 libfmodex-4.22.01.so을 가리 킵니다. 그런 다음 [DllImport("fmodex")]을 사용하면 프레임 워크가 나머지를 자동으로 파악합니다.

+0

1) Windows 라이브러리의 이름은 fmodex.dll입니다. Linux 라이브러리의 이름은 libfmodex-4.22.01.so입니다. 나는 그것들의 이름을 바꾸지 않기를 바랄 것이고, 나는 자동 매핑이 그것을 알아낼 것이라고 의심한다. 2) .NET에서 런타임 오류가 발생할 때까지 항목을 건너 뛸 것이라고 생각했습니다. 오류가 발생할 때까지 구성 파일을 읽지 않았으며, 구성을 읽을 때까지 읽지 않았습니다. 반응하는 방법, 그것은 파일을 처리하는 또 다른 오류가 발생했습니다. – BlueMonkMN

+0

나 자신을 확인할 수는 있었지만 지금은 리눅스로 부팅하지 않았다 : .tar.gz 파일 내에 심볼릭 링크와 같은 것이있다. 그래서 압축 파일이 압축 해제되면 파일과 심볼릭 링크를 가리킨다. ? – BlueMonkMN

+0

예, 이것은 tar의 dafault 동작입니다. – skolima

0

dll 가져 오기 코드를 별도의 어셈블리 dll에 넣습니다. 그런 다음 dllmap 항목과 함께 yourinterop.dll.config를 추가하십시오. MS에서 무시하고 모노로 처리합니다. 내 duplicate question을 참조하십시오.