Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Mono中使用Novell.Directory.Ldap(适用于Android和Touch)_Mono_Xamarin.ios_Ldap_Xamarin.android_Novell - Fatal编程技术网

在Mono中使用Novell.Directory.Ldap(适用于Android和Touch)

在Mono中使用Novell.Directory.Ldap(适用于Android和Touch),mono,xamarin.ios,ldap,xamarin.android,novell,Mono,Xamarin.ios,Ldap,Xamarin.android,Novell,我想在MonoTouch和Mono For Android项目中使用Novell.Directory.Ldap库。 当我在iOS模拟器modus中编译我的项目时,它编译时没有错误并且运行正确(在iOS模拟器中) 当我在iOS设备modus中编译我的项目(用物理设备测试应用程序)时,我遇到以下错误: Error MT2002: Failed to resolve "System.Void System.Security.Cryptography.RNGCryptoServiceProvider:

我想在MonoTouch和Mono For Android项目中使用Novell.Directory.Ldap库。

当我在iOS模拟器modus中编译我的项目时,它编译时没有错误并且运行正确(在iOS模拟器中)

当我在iOS设备modus中编译我的项目(用物理设备测试应用程序)时,我遇到以下错误:

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)
我怎样才能解决这个问题?我找不到解决办法

该库是否适用于MonoTouch和Android? Mono是否有更好的LDAP解决方案


更新:我刚刚用Android版的Mono进行了测试。这很好。

里面有三个问题,所以我把答案分成三部分。请全部阅读:-)

我怎样才能解决这个问题

这是一个普遍的问题,有一个普遍的解决办法

您编译的代码包含对mscorlib的引用,版本=1.0.5000.0

这可能是因为您没有使用Xamarin.iOS(MonoTouch)(名为
smcs
)提供的编译器来构建程序集。该编译器将设置引用以使用正确的
mscorlib.dll
程序集(并报告移动配置文件中缺少的任何内容)

它可以为Xamarin.Android工作的事实是它使用了JIT(即时编译),因此在运行时之前不会找到缺少的成员(如果执行达到该代码)

OTOH Xamarin.iOS使用AOT(提前编译),因为(苹果)不允许在设备上使用JIT。这意味着在构建时发现缺少的成员。在这种情况下,(托管)链接器无法找到引用并发出MT2002错误

因此,解决方案是使用
SMC
重新构建程序集,并修复(如果有)构建时错误。例如,
RNGCryptoServiceProvider
ctor的IIRC不可用(由于无法进行种子设定,因此不执行任何操作),应使用默认的ctor替换

该库是否适用于MonoTouch和Android

应该是这样。但是,我个人在
Novell.Directory.Ldap
方面的经验不是很好(代码和设计问题,例如线程,特别是启用SSL的情况)

另外,代码已经有一段时间没有更新了。您最好根据自己的LDAP需求寻找(托管或本机)替代方案

Mono是否有更好的LDAP解决方案

遗憾的是,我没有使用过任何其他类似的库,因此我无法提出替代方案(但也许其他人可以提供帮助)。

问题已经解决

我没有使用Novell的dll,而是下载了Novell LDAP库的所有源文件,并将它们放入一个新的库项目中。然后,我从自己的Mono项目中引用了该库


在编译我的项目和库项目时,我从库项目收到一些错误。手动解决这些错误后,它对这两个项目都很好(MonoTouch和Mono for Android).

尝试alpha频道的更新,他们为Xamarin推出了新的mono版本。iOSI刚刚更新了所有最新的alpha更新,但没有解决问题。还有其他建议吗?