Visual Studio 2005 - невозможно открыть форму на дизайнере - PullRequest
0 голосов
/ 02 октября 2008

Моя команда разработала приложение с графическим интерфейсом для Visual Studio 2005 под управлением C ++. Поскольку некоторые поставки не позволяют открыть форму в конструкторе, даже если исходный код и параметры проекта не были изменены. Дизайнер сообщает об этой ошибке:

Исключение типа 'System.OutOfMemoryException' было сгенерировано.

в Microsoft.VisualStudio.Design.VSDynamicTypeService.ShadowCopyAssembly (String fileName) в Microsoft.VisualStudio.Design.VSDynamicTypeService.CreateDynamicAssembly (String codeBase) в Microsoft.VisualStudio.Design.VSTypeResolutionService.AssemblyEntry.get_Assembly () в Microsoft.VisualStudio.Design.VSTypeResolutionService.AssemblyEntry.Search (String fullName, String typeName, Boolean ignoreTypeCase, Сборка и сборка, Описание строки) ...

Мы успешно перекомпилировали проект, но все еще сталкиваемся с этой проблемой. Есть идеи?

Ответы [ 4 ]

1 голос
/ 02 октября 2008

Вот как я использовал для устранения этих проблем: запустите второй экземпляр Visual Studio, загрузите ваш проект и присоедините к первому экземпляру, в который также загружен проект. Теперь установите точку останова в конструкторе и событиях Page Load, а также в любых пользовательских событиях рисования, которые вы можете иметь в форме во втором экземпляре, и попытайтесь открыть конструктор в первом случае, точки прерывания должны попасть, и вы сможете посмотрим, что происходит.

1 голос
/ 02 октября 2008

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

Одна вещь, которая помогла мне в такого рода ошибках в Windows Forms, была бы следующей:

  • Откройте решение Visual Studio 2005 для приложения с графическим интерфейсом. Пока не открывайте форму
  • Открыть еще один экземпляр Visual Studio 2005
  • Во втором случае прикрепите (Debug -> Attach to Process) первый экземпляр devenv.exe к отладчику. Убедитесь, что в исключениях (Отладка -> Исключения) установлены флажки для всех исключений в разделе «Сгенерировано».
  • Теперь перейдите к своему первому экземпляру VS2005 и откройте форму. Второй экземпляр VS2005 остановится на строке, где произошла ошибка.
0 голосов
/ 25 октября 2008

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

Мне удалось решить эту проблему, позволив Visual Studio использовать более 2 ГБ памяти. Вот процесс ...

(примечание: предполагается, что XP и Visual Studio 2005 - Vista и / или VS2008 потребуют небольших изменений)

Редактировать Boot.ini

Щелкните правой кнопкой мыши Мой компьютер , Свойства , Дополнительно вкладка. В разделе Запуск и восстановление нажмите Настройки . Нажмите кнопку Edit и добавьте переключатель / 3GB в конец строки [operating systems]:

multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /3GB

Сделать Visual Studio «Большой адресной информацией»

Запустите командную строку Visual Studio и перейдите в каталог IDE:

cd %ProgramFiles%\Microsoft Visual Studio 8\Common7\IDE

Используйте инструмент Microsoft editbin для изменения devenv.exe:

editbin /LARGEADDRESSAWARE devenv.exe

Теперь перезагрузите компьютер, и все готово!

0 голосов
/ 02 октября 2008

Это длинный выстрел, но попробуйте закрывать и открывать дизайнер несколько раз подряд. У меня были такие же проблемы с конструктором Windows Forms C # (VS2005): форма обычно открывалась правильно (после 5 попыток, довольно последовательно).

...