21 November, 2008

В семье не без урода

.NET Compact Framework есть существо обделенное не только функциональностью, но и интеллектом. Целый день ковырял странный exception о том, что тип не загружен. Мало того, что не говорится какой именно тип не загружен, но и возникает он в станном месте, где по идее ничего криминального нет. Обидно еще то, что отладчик напрочь отказался коннектиться к приложению на симуляторе. Пришлось отлаживать итерационным методом: исправил, запустил, проверил, что сюда дошли и так по кругу...

Расковырял: оказалось, что любой exception в статическом конструкторе подменяется exception о незагрузке типа без указания что же блин произошло там внутри. Простенько и со вкусом. Дальше больше: код ассембли был скомпилирован для .NET Framework v1.0, а запускался он на .NET Compact Framework v3.5. Так вот в коде были случайно использованы классы и методы (из System.dll) отсутствующие на .NET Compact Framework. Естественно при порытке обратиться к отсутствующему классу программу посылали, но как красиво: сборка System, Culture=null, Version= бла_бла_бла, Token=бла_бла_бла, ... НЕ НАЙДЕНА !!!

No comments: