2013-03-13 1 views
4

MonoTouch 및 Mono For Android 프로젝트에서 Novell.Directory.Ldap 라이브러리를 사용하고 싶습니다. http://www.novell.com/coolsolutions/feature/11204.htmlMono에서 Novell.Directory.Ldap 사용 (Android 및 Touch 용)

iOS 시뮬레이터 modus에서 프로젝트를 컴파일 할 때 오류없이 컴파일되고 올바르게 실행됩니다 (iOS 시뮬레이터에서).

Error MT2002: Failed to resolve "System.Void System.Security.Cryptography.RNGCryptoServiceProvider::.ctor(System.Byte[])" reference from "mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" (MT2002) (MyProject) 

가 어떻게이 문제를 해결할 수 : 나는 iOS 장비의 잠정 (물리적 장치와 응용 프로그램을 테스트하기 위해)에서 내 프로젝트를 컴파일 할 때

,이 오류가? 솔루션을 찾을 수 없습니다.

Android 용 MonoTouch 및 Mono에서이 라이브러리가 작동해야합니까? Mono를위한 더 나은 LDAP 솔루션이 있습니까?

업데이트 : Android 용 모노로 테스트했습니다. 이것은 잘 작동합니다.

+0

Xamarin.iOS 용 새 모노 버전을 공개 한 알파 채널에서 업데이트를 시도하십시오. –

+0

방금 ​​최신 알파 업데이트를 모두 업데이트했지만 문제가 해결되지 않았습니다. 다른 제안? – StackFlower

답변

3

문제가 해결되었습니다.

Novell에서 dll을 사용하는 대신 Novell LDAP 라이브러리의 모든 원본 파일을 다운로드하여 새 라이브러리 프로젝트에 넣었습니다. 그런 다음 자신의 모노 프로젝트에서 해당 라이브러리에 대한 참조를 만들었습니다.

내 프로젝트와 라이브러리 프로젝트를 컴파일하는 동안 라이브러리 프로젝트에서 오류가 발생했습니다. 이러한 오류를 수동으로 해결 한 후에는 두 가지 모두에서 제대로 작동합니다 (Android의 경우 MonoTouch 및 Mono).

7

거기에 세 가지 질문이 있습니다. 그래서 나는 내 대답을 세 부분으로 나눴습니다. 모든 내용을 읽어보십시오 :-)

How could I solve this problem?

이 문제를 해결하는 일반적인 해결책이있는 일반적인 문제입니다.

당신이 컴파일 된 코드는 어셈블리를 구축, smcs 이름 Xamarin.iOS (MonoTouch)와 함께 제공되는 컴파일러를 사용하지 않았기 때문에 가능성이 높습니다 "mscorlib, Version=1.0.5000.0

에 대한 참조를 포함합니다. 이 컴파일러는 올바른 mscorlib.dll 어셈블리를 사용하도록 참조를 설정하고 MOBILE 프로필에없는 항목을보고합니다.

사실 그것이 Xamarin.Android에 대한 일이 너무없는 회원 런타임 전에 찾을 수 없습니다 (JIT 컴파일)을 JIT를 사용한다는 것입니다 수 (및 실행은 코드에 도달 할 경우).

OTOH Xamarin.iOS는 (애플에 의해) 장치에서 JIT'ing이 허용되지 않기 때문에 AOT (사전 컴파일)를 사용합니다. 즉, 누락 된 회원은 빌드 시간에 있습니다. 이 경우 (관리 된) 링커가 참조를 찾지 못하고 MT2002 오류가 발생합니다.

따라서 해결 방법은 smcs을 사용하여 어셈블리를 다시 빌드하고 시간 오류를 수정하는 것입니다. 예 : IIRC는 RNGCryptoServiceProvider ctor를 사용할 수 없으므로 (시드를 사용할 수 없으므로 아무 작업도 수행하지 않음) 기본 ctor로 교체해야합니다.

Should this library work for MonoTouch and Mono For Android?

해야합니다. 그러나 내 개인Novell.Directory.Ldap의 경험은 이 아니고 (코드 및 디자인 문제, 특히 스레딩, 특히 SSL 사용 가능).

코드는 아직 상당 기간 업데이트되지 않았습니다. LDAP 요구 사항 (관리되는 또는 기본) 대안을 살펴 보는 것이 더 나을 것입니다.

Are there better LDAP solutions for Mono?

슬픈 듯이 나는 다른 유사한 라이브러리를 사용하지 않았으므로 대안을 제안 할 수는 없지만 다른 사람들이 도움을 줄 수는 있습니다.

+0

답변 해 주셔서 감사합니다. – StackFlower