我正在使用Xamarin构建一个使用SkyDrive .Net API Client的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 <filename unknown>:0
at Xamarin.Android.Tuner.DirectoryAssemblyResolver.Resolve (Mono.Cecil.AssemblyNameReference reference) [0x00000] in <filename unknown>:0
at Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences (System.Collections.Generic.List`1 assemblies, Mono.Cecil.AssemblyDefinition assembly, Boolean topLevel) [0x00000] in <filename unknown>:0
at Xamarin.Android.Tasks.ResolveAssemblies.Execute () [0x00000] in <filename unknown>:0 (MyApp)
显然我不能在Xamarin.Android中使用System.Web程序集。所以,问题是是否有办法加载缺少的程序集或我必须转移到另一个API?
提前致谢
答案 0 :(得分:1)
您是从源代码编译客户端还是以二进制形式获取客户端?
我想你已经编译好了,所以它是Xamarin和MS .net之间的一个库命名区别,没有System.Web.dll(但几乎所有的类都存在于System.Web命名空间内但是它们在其他库)。
解决方案是下载客户端的源代码,在同一解决方案中的Xamarin Studio内添加一个新的Android库项目,将客户端的所有代码文件添加到该项目中,添加任何必要的参考并在您的主项目中引用该项目项目,这样就会链接正确的库(如果没有缺少类,正如我所说,几乎没有,但不是全部)。