我的应用程序构建/链接/部署到模拟器很好,但我只是第一次尝试将应用程序构建/部署到真实设备,并且我收到链接器故障。
我在我的应用中的任何地方都没有使用System.Console
或ConsoleColor
,但我确实有相当数量的代码使用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”“/用户/ 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 into /Users/ogazitt/zaplify/bin/iPhone/Debug/iphone.app错误MT2002:可以 不解析引用:System.Void System.Console :: set_ForegroundColor(System.ConsoleColor)
答案 0 :(得分:5)
这很可能是您的一个程序集依赖项包含对System.Console.ForegroundColor
属性和System.ConsoleColor
类型的引用。
这在模拟器下工作,因为在这种情况下使用JIT(及时)编译器(更快的构建),如果执行从未到达ConsoleColor
代码,那么你永远不会看到它从MonoTouch的mscorlib.dll
。
然而,当您为设备构建时,MonoTouch需要使用AOT(提前)编译器(因为Apple在iOS设备上不允许JIT')。这意味着所有内容(即使您不会在执行时使用它)也需要编译为本机代码。任何遗漏的内容,例如ConsoleColor
,都会导致错误。
如果您不确定哪个程序集具有引用,只需打开错误报告,请附加每个.dll和.exe(您可以将附件标记为私有),我们将帮助您识别集会。