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

时间:2014-04-22 19:48:55

标签: c# mono xamarin.android onedrive

我正在使用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?

提前致谢

1 个答案:

答案 0 :(得分:1)

您是从源代码编译客户端还是以二进制形式获取客户端?

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

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