Xamarin 缺少引用

Xamarin missing references

我刚刚尝试将我的 windows 库之一导入 Xamarin android 应用程序并收到以下错误:

Exception while loading assemblies: System.IO.FileNotFoundException: Could not load assembly 'System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. Perhaps it doesn't exist in the Mono for Android profile? File name: 'System.Web.Extensions.dll' at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(AssemblyNameReference reference, ReaderParameters parameters) at Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences(ICollection`1 assemblies, AssemblyDefinition assembly, Boolean topLevel) at Xamarin.Android.Tasks.ResolveAssemblies.Execute() App7

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

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

任何解决方法将不胜感激,因为我不想重写工作 dll 或停止 xamarin 中的开发。

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

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

您可以尝试添加它:

System.Web.dll inn project references,点击edit -> Net Assembly -> Browse,进入root - Library/Frameworks/Mono.Framework/Versions/4.2.2/lib/mono/4。 5/System.Web

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

例如,它可能使用 log4net,其中包括 System.Web

好吧,看来我已经找到了答案,并且 post 为了帮助其他人。

首先,我尝试了 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);

然后项目开始工作没有任何问题。我对库的速度有一些考虑,但对于我的项目来说,速度并不是那么重要,所以我会愉快地使用它一段时间。