Почему происходит сбой компилятора VB.net после перемещения проекта? - PullRequest
0 голосов
/ 22 мая 2009

Я переносу данные со старого ноутбука на новый, включая некоторые проекты vb.net в visual studio 2008. Но когда я пытаюсь открыть некоторые из них на новом ноутбуке, я быстро получаю диалоговое окно, в котором говорится, что Компилятор vb упал и спросил меня, хочу ли я закрыть, отладить или проверить онлайн решения. Визуальная студия тогда, к сожалению, закрывается.

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

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

Сведения об ошибке:

Problem signature:
  Problem Event Name:   APPCRASH
  Application Name: devenv.exe
  Application Version:  9.0.21022.8
  Application Timestamp:    47317b3d
  Fault Module Name:    kernel32.dll
  Fault Module Version: 6.0.6001.18215
  Fault Module Timestamp:   4995344f
  Exception Code:   e06d7363
  Exception Offset: 0002f328
  OS Version:   6.0.6001.2.1.0.768.3
  Locale ID:    4105

Additional information about the problem:
  LCID: 1033

Read our privacy statement:
  http://go.microsoft.com/fwlink/?linkid=50163&clcid=0x0409

Старый ноутбук - Windows XP и использует Visual Studio Professional. Новый ноутбук под управлением Windows Vista использует команду visual studio. «Миграция» была прямой копией исходных файлов.

Ответы [ 2 ]

2 голосов
/ 22 мая 2009

Файл проекта может ссылаться на местоположение, которого больше нет (т. Е. Оно было на старом ноутбуке, а не на новом). Например, отличаются ли диски (D: на одном и C: на другом)?

1 голос
/ 22 мая 2009

Проект терпит крах, потому что все, что эквивалентно следующему фрагменту кода, дает сбой VS2008, но не VS2008 SP1:

Public Class B(Of T)
    Protected Function P(ByVal arg As T) As Boolean
    End Function
End Class
Public Class C
    Inherits B(Of Integer)
    Private Sub New(ByVal arg As Integer)
        Dim d = Function() P(arg)
    End Sub
End Class

Примечания:

  • Обновление до SP1 устраняет проблему.
  • В 'Boolean' или 'Integer' нет ничего особенного, это были просто удобные типы
  • Объединение обоих подводных лодок в один класс приводит к исчезновению ошибки.
  • Использование неуниверсального аргумента в функции базового класса приводит к исчезновению ошибки.
  • Использование не-конструктора sub в дочернем классе делает ошибку исчезающей.
  • Наивный перевод ошибки на C # не приводит к сбою компилятора C #.

Наконец-то я могу винить в этом компилятор. Не моя вина!

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