Xamarin缺少参考文献

时间:2016-10-12 11:23:05

标签: c# android .net mono

我刚尝试将我的一个Windows库导入Xamarin安卓应用,并收到以下错误:

  

加载程序集时出现异常:System.IO.FileNotFoundException:   无法加载程序集'System.Web.Extensions,Version = 4.0.0.0,   Culture = neutral,PublicKeyToken = 31bf3856ad364e35'。也许它没有   存在于Mono for Android个人资料中?文件名:   'System.Web.Extensions.dll'在   Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(AssemblyNameReference   参考,ReaderParameters参数)at   Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences(ICollection`1   程序集,AssemblyDefinition程序集,布尔topLevel)at   Xamarin.Android.Tasks.ResolveAssemblies.Execute()App7

即使我尝试手动将引用添加到应用程序中,它仍然无效。

这个库是否有mono支持(我发现它非常有用)System.Web.Extensions

任何变通办法都会非常感激,因为我不想重写工作dll或停止在xamarin中开发。

PS:我尝试手动添加所有必需的dll,最终导致部署错误而没有任何描述。

2 个答案:

答案 0 :(得分:1)

System.Web在Web服务器的上下文之外并没有多大意义,因此从Xamarin的角度来看,我怀疑它是否会被实现。

您可以尝试添加它:

System.Web.dll inn项目引用,点击编辑 - >净装配 - >浏览,转到root - Library / Frameworks / Mono.Framework / Versions / 4.2.2 / lib / mono / 4.5 / System.Web

或者,您可能需要查看您尝试导入的外部库,以查看是否可以删除任何引用并重建。

例如,它可能正在使用包含System.Web

的log4net

答案 1 :(得分:0)

好吧,我似乎找到了一个答案并将其发布以便帮助其他人。

首先,我尝试了VS建议的所有dll引用,以免更改我的代码的任何部分。添加超过20个引用后失败。我花了一个多小时的时间。

其次我按照@jaymarvels的建议决定从nuget检查一个库。我和Json.net一起改变了一行代码,如下所示:

之前的代码:

var serializer11 = new System.Web.Script.Serialization.JavaScriptSerializer(); T dc1 = serializer11.Deserialize<T>(json);

要编码:

T dc1 = Newtonsoft.Json.JsonConvert.DeserializeObject<T>(json);

然后项目开始没有任何问题。我对图书馆速度有一些考虑,但对于我的项目,速度并不是必不可少的,所以我很乐意使用它一段时间。