MonoTouch链接器无法解析System.Void System.Console :: set_ForegroundColor(System.ConsoleColor)

Omr*_*itt 1 jit monodevelop xamarin.ios aot ios

我的应用程序构建/链接/部署到模拟器很好,但我只是第一次尝试将应用程序构建/部署到真实设备,我收到链接器故障.

我不使用System.ConsoleConsoleColor在我的应用程序中的任何地方,但我确实有相当数量的代码使用UIColor,我想知道这里是否有一些MT依赖.

我正在使用最新的东西--MonoDevelop 2.8.6.5和MonoTouch 5.2.5.

编译为本机代码/ Developer/MonoTouch/usr/bin/mtouch -sdkroot"/ Developer"-v --nomanifest --nosign -dev"/Users/ogazitt/zaplify/bin/iPhone/Debug/iphone.app"-r "/Users/ogazitt/zaplify/bin/iPhone/Debug/BuiltSteady.Zaplify.Devices.ClientEntities.dll"-r"/Users/ogazitt/zaplify/bin/iPhone/Debug/Utilities.dll"-r"/ Users/ogazitt/zaplify/bin/iPhone/Debug/BuiltSteady.Zaplify.Devices.ClientViewModels.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/MonoTouch.Dialog-1.dll"-debug -profiling -linksdkonly -sdk"5.0""/ Users/ogazitt/zaplify/bin/iPhone /Debug/zaplifyiphone.exe"使用框架的MonoTouch 5.2.5版:/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk复制/Users/ogazitt/zaplify/bin/iPhone/Debug/zaplifyiphone.exe到/ Users/ogazitt /zaplify/bin/iPhone/Debug/iphone.app/zaplifyiphone.exe复制/Users/ogazitt/zaplify/bin/iPhone/Debug/SharpCompress.3.5.dll到/ Users/ogazitt/zaplify/bin/iPhone/Debug/iphone .app/SharpCompress.3.5.dll复制/Users/ogazitt/zaplify/bin/iPhone/Debug/Newtonsoft.Json.MonoTouch.dll到/Users/ogazitt/zaplify/bin/iPhone/Debug/iphone.app/Newtonsoft.Json .MonoTouch.dll链接SDK仅用于汇编/Users/ogazitt/zaplify/bin/iPhone/Debug/zaplifyiphone.exe到/Users/ogazitt/zaplify/bin/iPhone/Debug/iphone.app错误MT2002:无法解析参考: System.Void System.Console :: set_ForegroundColor(System.ConsoleColor)

pou*_*pou 5

这很可能是您的一个程序集依赖项包含对System.Console.ForegroundColor属性和System.ConsoleColor类型的引用.

这在模拟器下工作,因为在这种情况下使用JIT(及时)编译器(更快的构建),如果执行永远不会到达ConsoleColor代码,那么你将永远不会看到它从MonoTouch中丢失mscorlib.dll.

然而,当你建立设备MonoTouch的需要使用AOT(提前)编译器(因为苹果并没有让iOS设备JIT'ing).这意味着所有内容(即使您不会在执行时使用它)也需要编译为本机代码.任何遗漏的东西ConsoleColor都会导致错误.

如果您不确定哪个程序集具有引用,只需打开错误报告,请附加每个.dll和您的.exe(您可以将附件标记为私有),我们将帮助您识别程序集.

  • 不*总是*(理论上)但足够接近100%(在实践中)说*总是*重新编译是****解决方案:-) (2认同)