System.IO.FileNotFoundException:无法在Mono for Android中加载程序集System.Web

我正在使用Xamarin构建一个使用SkyDrive .Net API客户端的Android应用程序,但是当我在模拟器上运行我的Android应用程序时遇到以下错误

Error: Exception while loading assemblies: System.IO.FileNotFoundException: Could not load assembly 'System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Perhaps it doesn't exist in the Mono for Android profile? File name: 'System.Web.dll' at Xamarin.Android.Tuner.DirectoryAssemblyResolver.Resolve (Mono.Cecil.AssemblyNameReference reference, Mono.Cecil.ReaderParameters parameters) [0x00000] in :0 at Xamarin.Android.Tuner.DirectoryAssemblyResolver.Resolve (Mono.Cecil.AssemblyNameReference reference) [0x00000] in :0 at Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences (System.Collections.Generic.List`1 assemblies, Mono.Cecil.AssemblyDefinition assembly, Boolean topLevel) [0x00000] in :0 at Xamarin.Android.Tasks.ResolveAssemblies.Execute () [0x00000] in :0 (MyApp) 

显然我不能在Xamarin.Android中使用System.Web程序集。 所以,问题是是否有办法加载缺少的程序集或我必须转移到另一个API?

提前致谢

你是从源代码编译客户端还是以二进制forms获得它?

我想你已经编译好了,所以它是Xamarin和MS .net之间的库命名区别,没有System.Web.dll(但几乎所有类都存在于System.Web命名空间内,但它们在其他库中)。

解决方案是下载客户端的源代码,在同一解决方案中的Xamarin Studio内添加一个新的Android库项目,将客户端的所有代码文件添加到该项目中,在主项目中添加任何必要的参考和引用该项目,这样就可以链接正确的库(如果没有缺少类,正如我所说,几乎没有,但不是全部)。