Ошибка конструктора Visual Studio 2010 при запуске - PullRequest
27 голосов
/ 18 февраля 2011

Я использую VS2010, и если у меня есть форма, открытая в режиме конструктора, и я запускаю свое приложение, на вкладке конструктора больше не будет отображаться конструктор форм, но вместо этого будет отображаться ошибка (и она исправляется только путем перезапуска IDE) говоря:

"Чтобы предотвратить возможную потерю данных перед загрузкой конструктора, должны быть устранены следующие ошибки: "

1 Ошибка:

"Не удалось показать конструктор для этого файла, поскольку ни один из классы внутри него могут быть разработаны. Дизайнер осмотрел следующие классы в файле: ##### --- Базовый класс ##### мог не быть загруженным. Убедитесь, что на сборку ссылались и что все проекты были построены "

Затем я показываю следующий стек вызовов:

в System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.EnsureDocument (менеджер IDesignerSerializationManager)
в System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad (менеджер IDesignerSerializationManager)
в Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad (IDesignerSerializationManager serializationManager)
в System.ComponentModel.Design.Serialization.BasicDesignerLoader.BeginLoad (хост IDesignerLoaderHost)

Любая помощь очень ценится, это действительно раздражает.

Спасибо

Joel.

Ответы [ 14 ]

31 голосов
/ 18 февраля 2011

Время от времени я тоже получаю эту визуальную студийную ошибку, и я глубоко игнорирую текст ошибки, вместо этого я делаю следующее:

  1. Закрыть вкладку «Дизайн»
  2. Повторно открывает режим конструктора, дважды щелкнув в обозревателе решений или щелкнув правой кнопкой мыши вкладку Исходный код и выбрав View Designer
  3. Внезапно все снова работает!

Если это не помогает, вам, возможно, придется изменить пункт 2 на: Закройте и перезапустите Visual Studio.

Может быть, это поможет вам.

6 голосов
/ 19 мая 2011

Я обычно закрываю визуальную форму, перестраиваю решение, щелкаю правой кнопкой мыши, затем выбираю «представление конструктора» в коде формы.

Очень, очень раздражает.Я думаю вернуться к VS2008.

3 голосов
/ 29 марта 2012

Закройте форму. Очистите раствор. Восстановите решение. Повторно откройте форму. Работал для меня, когда больше ничего не будет.

2 голосов
/ 19 мая 2011

У меня была такая же проблема, и я смог решить ее, создав новый проект, затем скомпилировав и запустив проект, а затем я импортировал все файлы и снова запустил проект, и автоматически он снова работал, ничего лишнего.

2 голосов
/ 20 апреля 2011

Я могу избежать перезапуска VS, выполнив следующие действия:

  1. Добавьте новый пользовательский элемент управления
  2. Перетащите на него некоторые пользовательские элементы управления (если онвыдает ошибку, создайте решение заново).
  3. Повторно откройте свой элемент управления.

В моем случае у меня есть проект winforms с несколькими пользовательскими элементами управления, которые используются другими пользовательскими элементами управления,Всякий раз, когда я открываю некоторые из этих пользовательских элементов управления, я получаю ошибку «Базовый класс ...».Добавление нового пользовательского элемента управления, создание проекта, а затем добавление некоторых пользовательских элементов управления из моего проекта в новый пользовательский элемент управления позволило мне открыть пользовательские элементы управления, которые давали мне ошибку «Базовый класс ...».

ОБНОВЛЕНИЕ: я думаю, что нашел проблему.Мои элементы управления не были добавлены должным образом в файл csproj.В файле csproj файлы для частичных классов элементов управления / компонентов пользовательского интерфейса нуждаются в атрибуте 'DependentUpon'.

Пример: до:

<Compile Include="Windows\Forms\DataGridView.cs">
    <SubType>Component</SubType>
</Compile>
<Compile Include="Windows\Forms\DataGridView.Designer.cs" />

после:

<Compile Include="Windows\Forms\DataGridView.cs">
    <SubType>Component</SubType>
</Compile>
<Compile Include="Windows\Forms\DataGridView.Designer.cs">
    <DependentUpon>DataGridView.cs</DependentUpon>
</Compile>
1 голос
/ 15 декабря 2011

У меня была ситуация, когда пользовательский элемент управления создавал ошибку (не знаю почему), поэтому я удалил ссылки на пользовательский элемент управления из формы, и ошибка исчезла.

0 голосов
/ 30 июля 2018

Я попробовал чистое решение и пересобрал решение и работал на меня.Надеюсь, что это поможет!

0 голосов
/ 02 ноября 2016

"В файле проекта (.vcxproj) найдите запись для целевой версии Framework. Например, если ваш проект предназначен для использования .NET Framework 4.5, найдите v4.5 в элементеelement. "

(Microsoft)

В моем случае" v4.5 "не существовало, поэтому я добавляю его, и сейчас все хорошо.

0 голосов
/ 23 декабря 2015

Не кодируйте в Form1.Designer.cs . Переместите логику в Form1.cs (нажмите F7 на вкладке Form1.cs [Design] ).

0 голосов
/ 11 ноября 2014

Эта ошибка возникает, если класс Form не является первым классом в файле, например, если в начале файла есть некоторый вспомогательный класс.

Чтобы решить эту проблему, переместите все другие классы, кромеФорма класса внизу файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...