MonoTouch - System.Reflection.Emit.ModuleBuilder错误

时间:2011-11-24 23:25:19

标签: iphone .net json xamarin.ios ios5

我正在尝试在iPhone(IOS 5)中测试我的应用程序,我收到以下错误。它在模拟器中工作没有任何问题。

我正在引用一个似乎正在使用System.Reflection.Emit.ModuleBuilder的外部库(NewtonSoft.Json.Monotouch.dll)。有没有办法克服这个问题?任何有关这方面的帮助都非常感谢。

“ - r”/Developer/MonoTouch/usr/lib/mono/2.1/System.dll“-r”/Developer/MonoTouch/usr/lib/mono/2.1/System.Xml.dll“-r”/ Developer / MonoTouch / usr / lib / mono / 2.1 / System.Core.dll“-r”/Developer/MonoTouch/usr/lib/mono/2.1/monotouch.dll“-r”/ Developer / MonoTouch / usr / lib / mono / 2.1 / System.Runtime.Serialization.dll“-r”/Developer/MonoTouch/usr/lib/mono/2.1/System.Web.Services.dll“-r”/ Users / test / application / libraries / Newtonsoft。 Json.MonoTouch.dll“-linksdkonly -sdk”5.0“框架是:/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk 复制  /Users/test/application/bin/iPhone/Release/Unleashed.app 无法链接程序集:Mono.Linker.ResolutionException:无法解析引用: System.Reflection.Emit.ModuleBuilder

由于

更新

好吧,我从link下载了最新的 NewtonSoft.Json 源代码,编译了项目并将dll放入我的项目中。我仍然有同样的问题。我确实找出了引用 System.Reflection.Emit 的类。它是Utilities文件夹中的DynamicWrapper类。

我在其他博客link中发布了类似的问题。回答问题建议将Liner行为设置为“链接所有程序集”。任何人都可以解释如何设置这个吗?

2 个答案:

答案 0 :(得分:2)

已知

Newtonsoft.Json.MonoTouch.dll 可与MonoTouch配合使用。我自己看过/编译了很多应用程序。

您可能正在使用旧的或错误编译的程序集版本(例如缺少定义)。很难说不知道它的起源。尝试跟踪较新版本(或编辑您的问题以包含其来源)。

注意:它与模拟器一起使用的事实是因为使用了不同的 mscorlib.dll 来允许JITting(而不是AOTing)托管代码。这使得模拟器构建比设备构建更快

答案 1 :(得分:1)

我没有编译对我来说也不起作用的Newtonsoft.Json.MonoTouch.dll,而是从github下载了源代码,并将项目添加到我在MonoTouch的解决方案中并编译了解决方案。只有这样一切都有效。 (当然,正如popou所提到的,不要忘记MONOTOUCH; NET35; SILVERLIGHT选项。)