Mono를 통해 Mac에서 사용하기 위해 Windows에있는 C# 코드를 포팅합니다. 우리 코드에서는 P \ Invoke를 관리되지 않는 C++ dll에 넣습니다. 불행하게도 우리가 가지고있는 빌드 프로세스는 dylib 파일이 아닌 Mac에서 프레임 워크 파일만을 제공 할 수 있습니다.Mono Mac에서 .framework 파일로 P/Invoke
Mono 용 코드를 포팅했을 때 모든 것이 잘 작동하지만 P \ Invoke가 프레임 워크 파일에 잘 작동합니다. 프레임 워크 파일을 기본 검색 경로에 있어야하는/Library/Frameworks 폴더에 추가하려고 시도했지만 DllNotFound 예외가 계속 발생합니다. Mono Interop Guide에 따르면 Mono가 .so를 Mac에서 검색 할 수있는 확장자로 추가하는 데 문제가 있습니다. 그래서 설정 파일을 추가하고 .framework 파일로 대상을 제공했지만 여전히 동일한 예외가 발생했습니다. Mono 가이드는 Frameworks를 사용하여 P \ Invoke를 수행하는 것이 더 복잡해졌지만 정확한 문제 또는 그 문제를 해결하는 방법에 대해서는 언급하지 않았습니다.
아무도 모노 프레임 워크로 P \ Invoke하는 방법을 알고 있습니까?
이 문제는 해결되었습니다. 문제는 메인 프레임 워크 자체가 발견되었지만 내 시스템에 의존하지 않는 다른 라이브러리가 내 시스템에 존재한다는 것입니다. 이러한 라이브러리를 복사하면 P/Invoke가 정상적으로 작동합니다. – user408410