2015-05-09 3 views
0

Мое исключение с моно 4:Что изменилось в отражении в моно 4.x? (Совместимость с моно 3.x)

Unhandled Exception: 
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.InvalidProgramException: Invalid IL code in (wrapper delegate-invoke) <Module>:invoke_callvirt_CancellationTokenRegistration_CancellationToken&_Action`1<object>_object (System.Threading.CancellationToken&,System.Action`1<object>,object): IL_0057: castclass 0x00000007 

более подробная информация доступна здесь: https://github.com/Anthilla/Antd/issues/8

Все строит отлично с моно 3.2.x, 3.12.1 and other 3.x но начиная с 4.0.0-beta (4.0.1, 4.0.1.28) Я Это странное исключение.

Так что я задаюсь вопросом, нет ли там совместимости с IL, и тогда как можно использовать nuget? Что изменилось в отражении в 4.x?

же вопрос здесь: Issue after updating to mono 4.0.1 on Ubuntu

ответ

1

Связанные этой фиксации: https://github.com/mono/mono/commit/ae495e8bd485f48ecdb7e53d7e98771220f31997

и эта ошибка: https://bugzilla.xamarin.com/show_bug.cgi?id=29665

Но строить 4.0.1.28 от филиала 4.0.0 и не от мастера, так что нет это не исправить там, и это будет исправлено в 4.1 // кредитов для этого ответ идет Дэвид Karlas из моно дифракционной решетки

все хорошо работает с моно из master

+1

Один правильный. Следующий релиз Mono должен быть 4.2 согласно списку рассылки разработчиков. :) –

0

От http://www.mono-project.com/docs/about-mono/releases/4.0.0/

  • Принятие исходного кода Microsoft в открытом
  • C# 6,0
  • с плавающей точкой оптимизации
  • Мы прекратили поддержку 2,0 , Сборки 3.5 и 4.0
  • Обновлено IKVM
  • Зажигалка Debugger накладной
  • Basic PowerPC64 LE поддержка

(я добавил полужирный)

Они изменили много классов от их ("оригинального" Mono) реализаций на те Microsoft (http://referencesource.microsoft.com), поэтому многие «хаки», которые были совместимы с Mono, теперь не функционируют, потому что библиотеки CLR используются Microsoft, и они, вероятно, ввели новые ошибки, потому что они даже изменили код в исходном источнике на сделайте его совместимым. Это была версия «остановить поезд, изменить мир».

Смежные вопросы