将项目从VS 2003升级到VS 2017

时间:2019-06-20 15:07:44

标签: .net vb.net visual-studio-2017 upgrade visual-studio-2003

我的任务是将VB项目从VS 2003升级到Vs2017。在尝试标准Visual Studio升级并收到许多问题之后,我着手研究。事实证明,根据我的研究,做到这一点的最佳方法是在VS 2017中创建一个新项目,然后将所有文件从旧项目复制到新项目中,然后解决错误。

我这样做了,并添加了必要的参考文献,更改了必要的途径,并惹恼了我,共收到11,118个错误。错误总数最大:

  1. 出现7235错误代码:BC31429-'object'模棱两可,因为 类“ class”中存在具有此名称的多种成员。

  2. 在2217错误处代码:BC30269-'function()'具有多个定义 具有相同的签名。

对我来说,这些错误表示各种重复。但是,我本人却找不到任何东西。我对这个专业还是有点绿色,所以我可能缺少明显的东西。

我的问题是:我错过了明显的事情吗?我已经将这个项目付诸实行了吗?我应该如何解决这个问题?

谢谢

编辑: 这些错误的一些例子

Code: BC31429

Return Me.tableNotes

尽管该类中只有一个引用,但仍返回错误。 但是,在另一个类中,存在另一个具有相同名称和类型的实例。两者都是私人的,所以我认为它们不应该互相干扰。

Code: BC30269

Public Sub New()
        MyBase.New
        Me.InitClass
        Dim schemaChangedHandler As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged
        AddHandler Me.Tables.CollectionChanged, schemaChangedHandler
        AddHandler Me.Relations.CollectionChanged, schemaChangedHandler
    End Sub

    Protected Sub New(ByVal info As SerializationInfo, ByVal context As StreamingContext)
        MyBase.New
        Dim strSchema As String = CType(info.GetValue("XmlSchema", GetType(System.String)),String)
        If (Not (strSchema) Is Nothing) Then
            Dim ds As DataSet = New DataSet
            ds.ReadXmlSchema(New XmlTextReader(New System.IO.StringReader(strSchema)))
            If (Not (ds.Tables("Notes")) Is Nothing) Then
                Me.Tables.Add(New NotesDataTable(ds.Tables("Notes")))
            End If
            Me.DataSetName = ds.DataSetName
            Me.Prefix = ds.Prefix
            Me.Namespace = ds.Namespace
            Me.Locale = ds.Locale
            Me.CaseSensitive = ds.CaseSensitive
            Me.EnforceConstraints = ds.EnforceConstraints
            Me.Merge(ds, false, System.Data.MissingSchemaAction.Add)
            Me.InitVars
        Else
            Me.InitClass
        End If
        Me.GetSerializationData(info, context)
        Dim schemaChangedHandler As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged
        AddHandler Me.Tables.CollectionChanged, schemaChangedHandler
        AddHandler Me.Relations.CollectionChanged, schemaChangedHandler
    End Sub

    <System.Diagnostics.DebuggerStepThrough()>  _
    Public Class NotesDataTable
        Friend Sub New()
            MyBase.New("Notes")
            Me.InitClass
        End Sub

        Friend Sub New(ByVal table As DataTable)
            MyBase.New(table.TableName)
            If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then
                Me.CaseSensitive = table.CaseSensitive
            End If
            If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then
                Me.Locale = table.Locale
            End If
            If (table.Namespace <> table.DataSet.Namespace) Then
                Me.Namespace = table.Namespace
            End If
            Me.Prefix = table.Prefix
            Me.MinimumCapacity = table.MinimumCapacity
            Me.DisplayExpression = table.DisplayExpression
        End Sub
    End Class

1 个答案:

答案 0 :(得分:-1)

您正在尝试一次跨越许多技术变化的大跃进,无论是显性的还是微妙的。通过尝试先从VS 2003时代升级到VS 2010时代(例如,通过安装较旧版本的VS from here)来将升级分成几个步骤可能会更好。这样可以减少您最初遇到的错误数量,并允许您先解决这些错误(并可能防止多代错误相互影响),然后再进行后续升级(或升级到VS 2017)。