Я не могу заставить мое запутанное приложение работать на моно. Непрофессиональные работы на моно. Когда я использую структуру .net на win7, он запускается без проблем в обоих вариантах.ConfuserEx: System.TypeInitializationException on Mono
Это исключение, которое я получаю:
Необработанное исключение: System.TypeInitializationException: Тип инициализатор '< модуль>' бросил исключение. ---> System.NullReferenceException: ссылка на объект не установлена в экземпляр объекта по адресу .â € ™ € ™ € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € " â € «Ä € œa € <â € Ä € â« â¯â¬â € â € â «â € œa € ®ââ« â € â € ªâ € «Â € ¬a €« â € ªâ € ªâ € ®() < 0x40884310 + 0x00874> в: 0 в ..cctor() < 0x40884100 + 0x00017> в: 0 --- Конец внутренней трассировки стека исключений --- в Vintagestory.Server.Program.Main (System.String [] args) < 0x408814c0 + 0x002bb> in: 0 [ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: Инициализатор типа для '' выбрал исключение. ---> System.NullReferenceException: ссылка на объект не установлена в экземпляр объекта по адресу .â € ™ € ™ € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € â € " â € «Ä € œa € <â € Ä € â« â¯â¬â € â € â «â € œa € ®ââ« â € â € ªâ € «Â € ¬a €« â € ªâ € ªâ € ®() < 0x40884310 + 0x00874> в: 0 в ..cctor() < 0x40884100 + 0x00017> в: 0 --- Конец внутренней трассировки стека исключений --- в Vintagestory.Server.Program.Main (System.String [] арг) < 0x408814c0 + 0x002bb> в: 0
исключение, кажется, происходит в момент, когда он должен груз добавить это временный код из внешней библиотеки, который также запутывается в том же процессе.
Как я могу пойти и отладить/исправить это?
Update: Кажется, что также случается на Windows, Mono
UPDATE2: Здесь также запись вопрос GitHub жука с некоторыми более подробно: https://github.com/yck1509/ConfuserEx/issues/535
Я не использовал ConfuserEx или mono - может быть, они используют что-то, что просто не поддерживается в linux - Я предполагаю, что это конструктор, который генерирует исключение, но ни один из кода, который вы снимали, не показывает ничего, что может исключение NullReferenceException. Я не думаю, что у вас есть простой способ отладки, так как это в основном точка обфускации, поэтому вам, вероятно, придется вникать и понять код. Возможно, вставьте весь код конструктора, и я мог бы попробовать и помочь вам. – gilmishal
Спасибо за ваш ответ, я добавил пастебин ко всему исходному коду. Еще одна вещь, которую я мог бы попробовать, - отключить индивидуальную защиту и посмотреть, какие причины. – Tyron
Похоже на случай, когда классическая отладка 'Trace.WriteLine' поможет. Печатать сообщения отладки после каждого утверждения статического инициализатора, чтобы сузить место возникновения проблемы (также переместить любую инициализацию статических полей в статический инициализатор). –