Компоновщик MonoTouch не может разрешить System.Void System.Console :: set_ForegroundColor (System.ConsoleColor) - PullRequest
1 голос
/ 20 февраля 2012

Мое приложение хорошо собирает / связывает / развертывает на симуляторе, но я только что впервые попытался собрать / развернуть приложение на реальном устройстве, и я получил ошибку компоновщика.

Я не использую System.Console или ConsoleColor где-либо в своем приложении, но у меня есть достаточное количество кода, использующего UIColor, и мне интересно, есть ли здесь какая-то зависимость от MT.

Я использую самые последние вещи - MonoDevelop 2.8.6.5 и MonoTouch 5.2.5.

Компиляция в нативный код / ​​Разработчик / MonoTouch / usr / bin / mtouch -sdkroot "/ Разработчик" -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)

1 Ответ

5 голосов
/ 20 февраля 2012

Вполне вероятно, что одна из ваших зависимостей сборки, которая содержит ссылку как на свойство System.Console.ForegroundColor, так и на тип System.ConsoleColor.

Это работает в симуляторе, потому что используется JIT (как раз вовремя) компиляторв этом случае (более быстрая сборка) и, если выполнение никогда не достигнет кода ConsoleColor, вы никогда не увидите его отсутствующего в MonoTouch mscorlib.dll.

Однако при сборке для устройства необходимо использовать MonoTouchкомпилятор AOT (раньше времени) (потому что Apple не разрешает JIT'ing на устройствах iOS).Это означает, что все (даже если вы не будете использовать его во время выполнения) необходимо скомпилировать в собственный код.Отсутствие чего-либо, например ConsoleColor, приведет к ошибке.

Если вы не уверены, какая сборка имеет ссылку, просто откройте сообщение об ошибке, прикрепите каждый файл .dll и ваш .exe (вы можете отметить вложениекак private ), и мы поможем вам идентифицировать сборку.

...