Приложение CE 6.0 / .NET CF 3.5 обнаружило серьезную ошибку (MC3100)

При выходе из моего приложения .NET CF 3.5 на Motorola MC3100 (только версия CE 6.0) я получаю сообщение об ошибке "Приложение xxx обнаружило серьезную ошибку и должно быть закрыто". Затем мне нужно выполнить теплую загрузку устройства, чтобы приложение снова заработало.

Этот код работает нормально, пока приложение не будет закрыто, и только в том случае, если шрифт установлен для элемента управления в приложении. Все также отлично работает на .NET CF 2.0 и на всех других устройствах Motorola, Intermec, Psion, HHC, которые я пробовал с .NET CF 3.5.

Вот мой текущий тестовый код:

[MTAThread]
static void Main()
{
  Control oCtrl = new Control();
  oCtrl.Font = new System.Drawing.Font("Tahoma", 10F, System.Drawing.FontStyle.Bold);

  // Setting the controls font to null works
  // oCtrl.Font = null;  Works

  // Setting the Control to null does not work, still get error
  // oCtrl = null;       Doesn't work

  // Setting a font, not on a control, also works fine.
  // System.Drawing.Font font = new System.Drawing.Font("Tahoma", 10F, System.Drawing.FontStyle.Bold);
}

Я видел несколько ссылок, которые кажутся связанными:

Но пока единственная рекомендация, которую я нашел, — исключить шрифты из приложения. В данном случае слишком много мест, где устанавливаются шрифты, включая связанные сборки, что это было бы невозможно.

Кто-нибудь еще видел что-нибудь подобное. Похоже, что-то связано с элементами управления, которые неправильно распоряжаются шрифтами в этих версиях.

7
задан skeeve 22 May 2012 в 19:47
поделиться