Компилятор Visual Basic не может восстановиться после следующей ошибки: системная ошибка & Hc0000005 & (внутренняя ошибка компилятора Visual Basic) - PullRequest
0 голосов
/ 01 июля 2011

Эта ошибка сначала появляется случайно.

Шаги для воссоздания:

  1. Откройте Visual Studio и загрузите решение (некоторые файлы открываются автоматически) - это когда проблема возникает
  2. Закройте все открытые файлы
  3. Перезапустите Visual Studio и загрузите решение (без проблем)
  4. Откройте точно такие же файлы снова, перезапустите Visual Studio и загрузите решение, чтобы файлы открывались автоматически (проблема возникает!)

Таким образом, проблема кажется воспроизводимой.

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

Я думаю, что это связано с одним из пользовательских элементов управления с элементами управления DevExpress - когда возникает ошибка, дизайнеротображает ошибку.Хотя в данный момент я не могу воспроизвести это, чтобы подтвердить это.

Пока это не происходит, поэтому я не могу воспроизвести его.

Ответы [ 2 ]

1 голос
/ 05 июля 2011

Попробуйте перехватить исключение и опубликуйте здесь callstack.Чтобы захватить стек вызовов, попробуйте использовать подход, описанный в . Какая информация вам нужна для устранения проблемы, которая возникает с вашими продуктами во время разработки? .Также убедитесь, что атрибут CopyLocal для сборок DevExpress, на которые ссылается ваш проект, имеет значение false.Также папка bin вашего приложения не должна содержать наши сборки.Возможно, это поможет вам решить эту проблему.

1 голос
/ 01 июля 2011

Этот тип ошибки возникает, когда вы пытаетесь передать нулевой указатель нативному методу, и этот метод пытается прочитать из этого нулевого указателя, который выдает эту ошибку.Найдите в своем коде какую-нибудь P / Invoke или стороннюю DLL, которую вы, возможно, используете, которая, возможно, использует P / Invoke.

Как только вы найдете возможный метод, просто поставьте галочку в параметрах, чтобы убедиться, что нетпараметр имеет значение NULL (или в VB.NET, ничего)

...