Nie mogę uruchomić mojej zaciemnionej aplikacji działającej na mono. Niefracowane działa na mono. Kiedy używam platformy .net na win7, rozpoczyna się ona bez problemu w obu wariantach.ConfuserEx: System.TypeInitializationException on Mono
Jest to wyjątek uzyskać:
Unhandled Wyjątek: System.TypeInitializationException: Typ inicjator dla '< Module>' zwrócił wyjątek. ---> System.NullReferenceException: Odwołanie do obiektu nie jest ustawione na instancję obiektu w .â € Žâ € Žâ € € Žâ € ™ Žâªâ¯â € ť â € <â € <â € <â € <â € <â € <â € <â € <â € <â € <â € <â € <â € <â € <â € <â € <â € <â € <â € <â € <â € <â € <â € <â € ªâ € ®() < 0x40884310 + 0x00874> w: 0 w .cctor() < 0x40884100 + 0x00017> w: 0 --- Koniec śledzenia stosu wyjątku wewnętrznego --- w Vintagestory.Server.Program.Main (System.String [] args) < 0x408814c0 + 0x002bb> in: 0 [ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: Inicjator typu dla '' wyrzucił wyjątek. ---> System.NullReferenceException: Odwołanie do obiektu nie jest ustawione na instancję obiektu w .â € Žâ € Žâ € € Žâ € ™ Žâªâ¯â € ť â € <â € <â € <â € <â € <â € <â € <â € <â € <â € <â € <â € <â € <â € <â € <â € <â € <â € <â € <â € <â € <â € <â € <â € ªâ € ®() < 0x40884310 + 0x00874> w 0 w ..cctor (0x40884100) < + 0x00017> w 0 --- Koniec wewnętrznej śledzenia wyjątku stosu --- w Vintagestory.Server.Program.Main (System.String [] arg) < 0x408814c0 + 0x002bb> w 0
wyjątkiem zdarza się w momencie, gdy ma ona na obciążenie dodawać kod źródłowy z zewnętrznej biblioteki, która również jest zaciemniana w tym samym procesie.
Jak mogę nawet przejść i debugować/naprawić to?
Aktualizacja: Wydaje się również zdarzyć na Windows Mono
Update2: Tu jest też wejście problem github z buga z jakimś bardziej szczegółowo: https://github.com/yck1509/ConfuserEx/issues/535
Nie użyłem ConfuserEx lub mono - może używają czegoś, co nie jest obsługiwane w Linuksie - Domyślam się, że jest to konstruktor, który zgłasza wyjątek, ale żaden z kodu, który zrobiłeś, nie pokazuje niczego, co może rzucić wyjątek NullReferenceException. Nie sądzę, że masz prosty sposób debugowania go, ponieważ jest to w zasadzie punkt zaciemniania, więc prawdopodobnie będziesz musiał zagłębić się i zrozumieć kod. Może wkleić cały kod konstruktora, a ja mógłbym ci pomóc. – gilmishal
Dziękuję za odpowiedź, dodałem pastebin do całego kodu źródłowego. Jeszcze jedno, co mógłbym spróbować, to wyłączyć indywidualne zabezpieczenia i zobaczyć, jakie są przyczyny. – Tyron
Wygląda to na przypadek, w którym mogłoby pomóc klasyczne debugowanie "Trace.WriteLine". Wydrukuj komunikaty debugowania po każdej instrukcji statycznego inicjalizatora, aby zawęzić lokalizację problemu (przenieś także inicjalizację pól statycznych do inicjalizatora statycznego). –