Тип "Microsoft.CompactFramework.Design.UnsafeControl" не имеет свойства с именем

Я получаю эту ошибку при открытии конструкторского представления формы, в которой имеется Honeywell DecodeControl (для сканера штрих-кодов Honeywell - Dolphin 6100, если кому-то интересно).

Я погуглил это до смерти и сделал следующее:

добавил файл XMTA с этим в этом:

<?xml version="1.0" encoding="utf-16"?>
<Classes xmlns="http://schemas.microsoft.com/VisualStudio/2004/03/SmartDevices/XMTA.xsd">
  <Class Name="Honeywell.DataCollection.WinCE.Decoding.DecodeControl">
    <Description></Description>
    <DesktopCompatible>true</DesktopCompatible>
    <DesignTimeVisible>true</DesignTimeVisible>
  </Class>
</Classes>

Установите действие сборки XMTA на "none"

Игнорирование первой ошибки по-прежнему дает мне "Ссылку на объект, не установленную для экземпляра объекта".

Это не помогло вообще.

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

Я даже не пытаюсь отладить устройство на рабочем столе или в эмуляторе - устройство подключено через USB-док-станцию.

Буквально единственное, что изменилось, это то, что аппарат dev подключен к моей домашней сети по беспроводной сети, а не через CAT5 для рабочей сети. И я не вижу, чтобы это было хоть как-то связано с этим.

На более связанной ноте рассматриваемый элемент управления никогда не обнаруживался в наборе инструментов после того, как я выбрал Выбрать элементы -> проверить элемент управления. Не уверен, если это связано.

Кто-нибудь может пролить свет?

Я могу опубликовать дизайнерский код, если это необходимо.

Спасибо

3 ответа

Решение

Оказывается, я нацелился не на ту платформу для устройства - VS решил по собственному желанию, что мне нужно нацелиться на 3.5 вместо 2.0. Переключил обратно и все хорошо.

У меня такая же проблема в VS2102 с WEC2013.

И без P/Invoke, но с пользовательским элементом управления, полностью управляемым кодом.net. Проблема в свойствах Enum моего пользовательского элемента управления. И никакого решения пока нет.

Я столкнулся с этой ошибкой, но она была вызвана моей игрой с API MessageBeep в форме. Хотя эта форма никак не связана с моими пользовательскими элементами управления или компонентами, просто наличие этой ссылки на пространство имен Interop в форме повредило все элементы управления в моем приложении и сделало невозможным их просмотр в конструкторе.

Мораль этой истории - НЕ ИСПОЛЬЗОВАТЬ Interop IN CE (PInvoke).

Это было страшно. Просто на голову любой другой несчастной душе, пытающейся издать звуковой сигнал.

Другие вопросы по тегам