Недавно я получил ошибку в дизайнере 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?
Edit: Я использую полную версию .NET 4 со всеми библиотеками.