Подтвердить что ты не робот

Visual studio показывает бесконечные сообщения. "Генерация кода для свойства valueMember" не удалась ".

После нескольких дней счастливого взлома на этом приложении С# с помощью Visual Studio 2008 меня поразило отсутствие ошибок в диалоговых окнах ошибок:

Генерация кода для свойства 'valueMember' не удалось.
Ошибка: "Ссылка на объект не установлена ​​в экземпляр объекта."

Это происходит сейчас, когда я делаю крошечные изменения в дизайнере, например. сдвиньте управление на несколько пикселей, а затем попытайтесь сохранить. Несколько таких диалоговых окон ошибок появляются каждую секунду, заставляя меня заняться отменой всех этих действий, нажимая клавишу Enter, пытаясь получить alt-F4, чтобы заставить VS закрыться.

В конце концов я получаю VS для закрытия и сохранения изменений, которые я сделал. После перезапуска VS я полностью "очищаю" весь проект, потом "строю", и все работает отлично, приложение работает нормально, никаких проблем.

Пока не сделаю еще одно небольшое изменение в дизайнере форм.

Я не знаю о каком-либо свойстве valueMember в своем приложении.

Это делает меня сумасшедшим, это настоящий showstopper для моего проекта. Любая помощь приветствуется.

4b9b3361

Ответ 1

Поскольку это происходит во время разработки, вполне вероятно, что у вас есть пользовательский элемент управления, для которого требуется параметр или другое значение, которое не имеет значения по умолчанию.

В режиме конструктора в Visual Studio; экземпляр элемента управления создается для визуализации его в визуальном редакторе, но если элемент управления требует, чтобы свойство было задано до его визуализации, это приведет к ошибке.

Можете ли вы проверить, что все пользовательские элементы управления имеют значения по умолчанию, и все, на что есть ссылки в конструкторе, которое не может иметь значение по умолчанию, переносится в свойство DesignMode - см. http://msdn.microsoft.com/en-us/library/system.componentmodel.component.designmode.aspx.

Ответ 2

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

Ответ 3

Попробуйте закрыть и снова открыть Visual Studio. может быть, это кажется глупым, но это работает!

Ответ 4

Совместимый с ответом @Chanipoz (закрытие/повторное открытие) приложение для компонентов, богатых компонентами/пользовательскими элементами управления, начало успешно скомпилироваться после закрытия основного окна конструктора форм.

У меня этот код уже много лет и я никогда не видел ошибки до сегодняшнего дня. Не знаю, откуда он. Но что-то сегодня о том, что форма открытой в дизайнере сделала все несчастным. Простое закрытие экрана сделало все гладким.

Ответ 5

Используйте другой экземпляр Visual Studio для подключения к первому экземпляру Visual Studio.

Перейдите на Debug-> Присоединить к процессу и найдите процесс devenv.exe. Поскольку у вас будет запущено два процесса devenv.exe, вы, вероятно, захотите выбрать тот, у которого более низкий идентификатор, который обычно является первым запущенным экземпляром Visual Studio.

Ответ 6

Мне пришлось столкнуться с этой проблемой. Поскольку я не нашел решение (много наследования), я могу сказать: .SuspendLayout() и .ResumeLayout() могут отсутствовать в коде или в одном из них. То же самое с .BeginInit() и .EndInit(). Между ними ожидается, что будет = new ... и некоторые параметры свойств. Возможно, кто-то, столкнувшись с этой проблемой, найдет решение с этой информацией.