【问题标题】:Why does the VB.net compiler crash after I move a project?为什么移动项目后 VB.net 编译器会崩溃?
【发布时间】:2009-05-25 03:36:23
【问题描述】:

我正在将数据从旧笔记本电脑迁移到新笔记本电脑,包括 Visual Studio 2008 中的一些 vb.net 项目。但是当我尝试在新笔记本电脑上打开其中一些项目时,我很快得到一个对话框,指出vb 编译器崩溃并询问我是否要关闭、调试或在线检查解决方案。然后,Visual Studio 令人沮丧地关闭了。

这些项目在旧笔记本电脑上打开时不会崩溃,而其他迁移的项目在打开时不会崩溃。因此,一定是项目的某些属性因移动而损坏。

我进行了搜索,发现有类似问题但没有答案的人发布的帖子。为什么会发生这种情况,我该如何解决?

错误详情:

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 并使用了视觉工作室团队。 “迁移”是源文件的直接复制粘贴。

【问题讨论】:

    标签: vb.net visual-studio-2008 migration crash


    【解决方案1】:

    项目文件可能引用了一个不再存在的位置(即它在旧笔记本电脑上,而不是在新笔记本电脑上)。例如,驱动器是否不同(D:一个,C:另一个)?

    【讨论】:

    • 可能不是驱动器,但用户名可能不同并且操作系统可能已更改。我更好奇该项目是否在源代码控制中,如果他只是试图直接复制文件夹。
    • 无源代码控制。直接复制粘贴。如果找不到文件,我希望编译器不会crash,但这可能是原因。项目文件似乎只有相对文件路径。
    • 您有可以发布的项目文件样本吗?也许有什么东西会扑向我们。另外,如果它们是小项目,是否可以启动一个新项目并将源代码复制并粘贴到适当的位置?
    • 我无法发布项目,但我会尝试删除所有与问题无关的文件,然后发布剩下的内容。
    • 哦,不是整个项目。只是组成项目的文件(.vbproj 和/或 .sln)。
    【解决方案2】:

    项目崩溃是因为任何相当于以下 sn-p 代码的代码都会导致 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 可解决此问题。
    • “布尔”或“整数”没有什么特别之处,它们只是方便的类型
    • 将两个 sub 合并到一个类中会使该错误消失。
    • 在基类函数中使用非泛型参数会使错误消失。
    • 在子类中使用非构造函数子类会使错误消失。
    • 简单的 C# 翻译错误不会导致 C# 编译器崩溃。

    我终于可以把它归咎于编译器了。不是我的错!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-12
      • 2011-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-20
      相关资源
      最近更新 更多