У меня проблемы с отображением настраиваемых (унаследованных) элементов управления в моем мобильном проекте .NETCF для Windows в Visual Studio. Элемент управления отображается на поверхности конструктора в виде серого поля с написанным в нем именем класса.
В качестве тестового примера у меня есть простой элемент управления, определенный как:
public class ucButton2 : Button
{
}
Должно быть похоже на кнопку, но дает забавное поведение.
Раньше я решал эту или аналогичные проблемы с помощью файла атрибутов времени разработки. Поэтому я включил файл DTA.xmta со следующим содержимым
<?xml version="1.0" encoding="utf-16"?>
<Classes xmlns="http://schemas.microsoft.com/VisualStudio/2004/03/SmartDevices/XMTA.xsd">
<Class Name="MyProject.CustomControls.ucButton2">
<Description>Testbutton</Description>
<DesktopCompatible>true</DesktopCompatible>
</Class>
</Classes>
Теперь все становится поистине странным - я начинаю получать ошибки компиляции из genasm.exe в несвязанных файлах типизированных наборов данных.
Следуя совету из последнего комментария к этому сообщению: http://www.simonrhart.com/2008/02/upgrading-your-solutions-to-visual.html
Я изменил DTA.xmta на действие сборки «Встроенный ресурс».
Теперь приложение компилируется, но ничего не изменилось - на поверхности конструктора по-прежнему отображается пустое поле с именем класса.
Я закрыл и снова открыл Visual Studio, чтобы убедиться, что не происходит странного кеширования - такое же поведение.
Как я уже сказал, в прошлом файл xmta решал эту проблему. Но на этот раз этого не произошло. Но в то же время в прошлом добавление файла xmta не приводило к отключению genasm.exe во время компиляции. В другом моем проекте мой файл xmta имеет действие сборки «none», а не «встроенный ресурс».
Во время выполнения все работает нормально. Это чисто временная проблема проектирования. Любая помощь приветствуется.