Недавно я получал сообщение об ошибке в конструкторе Windows Forms VS2010SP1 при использовании унаследованных пользовательских контролов.
Ошибка:
Невозможно отобразить конструктор для этого файла, посколькуни один из классов внутри него не может быть разработан.Разработчик проверил следующие классы в файле: DebugPanel --- Базовый класс 'UI.Panels.PanelBase' не может быть загружен.Убедитесь, что на сборку ссылались и что все проекты были построены.
PanelBase - это UserControl, который определен в той же библиотеке классов, что и DebugPanel, который также реализует интерфейс IPanel (который, в свою очередь, определен вта же библиотека классов).IPanel реализует интерфейс IBaseItem, который определен в другой библиотеке классов.
Таким образом, у нас есть
DebugPanel (Library UI.Shared2)
- PanelBase (Library UI.Shared2)
- UserControl (System.Windows.Forms - .NET4)
- IPanel (Library UI.Shared2)
- IBaseItem (Library Net.Common)
PanelBase проектируется правильно, проект все собирается правильно и работает, но когда я пытаюсь и проектируюлюбой унаследованный элемент управления конструктора не работает.Это не ограничивается элементом управления DebugPanel, но любым элементом управления, унаследованным от PanelBase ... Я также видел проблему с другими элементами управления, которые я использую, с похожими иерархиями наследования.
Обычно я могу временно разрешить проблемуочистив библиотеку UI.Shared2, закрыв VS, а затем снова открыв ее, пересобрав решение и открыв конструктор.Затем это будет работать некоторое время, а затем снова начнет давать сбой.
У кого-нибудь есть предложения, которые могут навсегда решить эту проблему, не прибегая к перезапуску VS?
Редактировать: Я работаю над полной версией .NET 4 со всеми библиотеками.