Visual studio показывает бесконечные сообщения. "Генерация кода для свойства valueMember" не удалась ".
После нескольких дней счастливого взлома на этом приложении С# с помощью Visual Studio 2008 меня поразило отсутствие ошибок в диалоговых окнах ошибок:
Генерация кода для свойства 'valueMember' не удалось.
Ошибка: "Ссылка на объект не установлена в экземпляр объекта."
Это происходит сейчас, когда я делаю крошечные изменения в дизайнере, например. сдвиньте управление на несколько пикселей, а затем попытайтесь сохранить. Несколько таких диалоговых окон ошибок появляются каждую секунду, заставляя меня заняться отменой всех этих действий, нажимая клавишу Enter, пытаясь получить alt-F4, чтобы заставить VS закрыться.
В конце концов я получаю VS для закрытия и сохранения изменений, которые я сделал. После перезапуска VS я полностью "очищаю" весь проект, потом "строю", и все работает отлично, приложение работает нормально, никаких проблем.
Пока не сделаю еще одно небольшое изменение в дизайнере форм.
Я не знаю о каком-либо свойстве valueMember
в своем приложении.
Это делает меня сумасшедшим, это настоящий showstopper для моего проекта. Любая помощь приветствуется.
Ответы
Ответ 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 ...
и некоторые параметры свойств. Возможно, кто-то, столкнувшись с этой проблемой, найдет решение с этой информацией.