Недавно я получал ошибку в конструкторе Windows Forms VS2010SP1 при использовании унаследованных UserControls.
Ошибка
Дизайнер не может быть показан для этого файла, потому что ни один из классы внутри него могут быть разработаны. Дизайнер осмотрел следующие классы в файле: 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 со всеми библиотеками.