Я пытаюсь использовать DotNetZip (http://dotnetzip.codeplex.com/) в проекте с одним касанием.
Я перекомпилировал его для monotouch , сделав два новых проекта monotouch под MonoDevelop (один для ZLib и другой для DotNetZip), поместив код внутрь, удалив код, который ссылается на Windows Forms, и настройка Цель компиляции = Библиотека в опциях проекта.
Я установил активную конфигурацию в MonoDevelop на «Release - iPhone» перед компиляцией.
Затем я сослался на полученные библиотеки DLL в моем основном монотушном проекте.
Это прекрасно работает при работе в симуляторе, но когда я пытаюсь отладить его на реальном устройстве (в моем случае iPod Touch 4), я получаю сообщение об ошибке во время выполнения:
Исключение System.ExecutionEngineException
Попытка JIT-метода компиляции 'Vortaro.SearchTableViewSource: .ctor (Vortaro.SearchViewController)' при работе с параметром --aot-only.
Что происходит в этой строке:
using (ZipFile zip = ZipFile.Read ("dictionary.zip")) {
-
Я также протестировал на простом примере, который делает это только при нажатии кнопки:
ZipFile.Read ("dictionary.zip");
и я получаю эту ошибку:
Необработанное исключение: System.ExecutionEngineException:
Попытка JIT-метода компиляции 'Ionic.Zip.ZipContainer: .ctor (object)' при работе с параметром --aot-only.
в Ionic.Zip.ZipEntry.ReadDirEntry (Ionic.Zip.ZipFile zf) [0x000b5] в /Users/(...)/ZipDirEntry.cs:199
Когда я смотрю на конструктор, на который указывает ошибка, я не вижу ничего, что могло бы вызвать компиляцию JIT:
public ZipContainer(Object o)
{
_zf = (o as ZipFile);
_zos = (o as ZipOutputStream);
_zis = (o as ZipInputStream);
}