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

本文关键字:System Mono 程序集 加载 Android IO FileNotFoundException | 更新日期: 2023-09-27 17:59:28

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

提前感谢

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

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

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

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