Я уже несколько недель занимаюсь разработкой однотонной игры на OpenGL для iPhone. Совсем недавно он собирался и работал правильно на моем тестовом оборудовании (iPhone 4). Но когда я загрузил проект вчера, он дал мне ошибку компилятора:
Framework 'Mono for iPhone' not Installed.
Я не могу придумать никаких причин для этого, я не изменил свою систему или исходный код. К счастью, Monodevelop уже преследовал меня ссылкой на скачивание последней загрузки API. Я установил и ошибка ушла. Но вместо этого я теперь получаю ошибку времени выполнения при запуске приложения http://screencast.com/t/EXyNqqhNoEsu:
System.ExecutionEngineException has been thrown. Attempting to JIT compile method ... FirstOrDefault ... while running with --aot-only.
Это происходит при попытке создать новый DataContractSerializer для загрузки некоторых настроек XML: http://screencast.com/t/4SDzU5ygg
Это заставило меня впервые изменить настройку поведения компоновщика в настройках проекта приложения. Было установлено «Не связывать», как это было. Когда я переключаюсь на «Link SDK сборки только», он запускается без вышеуказанного исключения.
Это было бы здорово, проблема решена, за исключением того, что компиляция и развертывание на телефоне в этом режиме занимает почти полчаса (!). Выходные данные сборки находятся на «Связывание SDK только для сборки ...». Это нормально? Я не думаю, что смогу сохранить здравомыслие так долго. Даже «Не связывай» занимает около пяти минут, что является изнурительным шагом, когда ты пытаешься найти и устранить неисправность.
Повторюсь, это код, который работал каждый день в течение нескольких недель, и, насколько мне известно, он не изменился из своего рабочего состояния. Кто-нибудь знает, почему эта ошибка возникает сейчас, и какое решение может быть для продолжения использования опции «Не связывать»?