gpt4 book ai didi

android - 加载程序集时出现 monodroid 异常 -> 无法加载程序集 System.Net

转载 作者:搜寻专家 更新时间:2023-11-01 08:11:07 27 4
gpt4 key购买 nike

我有一个具有一些业务功能的小型程序集(调用网络服务并接收一些数据并将数据返回到列表中)。这个程序集是用visual studio开发和编译的。

我在一个 iPhone 应用程序项目中获取了该程序集并使用 MonoDevelop 和 MonoTouch 引用了该程序集。效果很好。

现在,我使用 MonoDroid 在 MonoDevelop 中为 Android 应用创建了一个新项目。代码编译完美。但是当我想在 android 上部署应用程序时,我得到了这个异常:

/Library/Frameworks/Mono.framework/External/xbuild/Novell/Novell.MonoDroid.Common.targets:
Error: Exception while loading assemblies:
System.IO.FileNotFoundException: Could not load assembly 'System.Net, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e'.
Perhaps it doesn't exist in the Mono for Android profile?
File name: 'System.Net.dll'
at Monodroid.Tuner.MonoDroidResolver.Resolve (Mono.Cecil.AssemblyNameReference reference, Mono.Cecil.ReaderParameters parameters) [0x00000] in <filename unknown>:0
at Monodroid.Tuner.MonoDroidResolver.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) [0x00000] in <filename unknown>:0
at Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences (System.Collections.Generic.List`1 assemblies, Mono.Cecil.AssemblyDefinition assembly) [0x00000] in <filename unknown>:0
at Xamarin.Android.Tasks.ResolveAssemblies.Execute () [0x00000] in <filename unknown>:0

据我所知,Mono 在 System 程序集中有 System.Net 程序集。我的项目中引用了系统程序集。

有什么想法吗?

最佳答案

As far as I know Mono has the System.Net Assembly in the System Assembly.

没有。 System.dll 程序集中有一个System.Net 命名空间

MonoTouch 中没有 System.Net.dll,我认为 Android 版 Mono 中也没有(我上次检查时没有 ;-)

Silverlight 中有一个 System.Net.dll。它包含 WebClientWebRequestWebResponse...,在 regular 框架中(包括 MonoTouch 和 Mono对于 Android)System.dll 的一部分。

常规 .NET 框架有一个 System.Net.dll - 但它与 Silverlight 中提供的完全不同。这令人困惑,在 IMO 看来这是一个非常糟糕的决定。

I took the assembly and referenced this assembly with MonoDevelop and monotouch in an iPhone app project.

当使用 模拟器 时,它可能在 MonoTouch 中工作,因为正在使用 JIT(只要不需要代码,丢失的引用将被忽略)。但是,如果您尝试在模拟器上链接您的代码(默认情况下不链接)尝试为设备构建,那么我非常有信心您会遇到类似的问题错误消息(即 MonoTouch 链接器和/或 AOT 编译器将提示缺少引用)。

简而言之:您需要针对 Android SDK 程序集针对 MonoTouch 和 Mono 重新编译您的源代码。这是确保您不会丢失类型引用(或添加不存在的程序集引用)的唯一安全方法。

关于android - 加载程序集时出现 monodroid 异常 -> 无法加载程序集 System.Net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9507513/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com