Обновление проекта с VS 2003 до VS 2017 - PullRequest
0 голосов
/ 20 июня 2019

Мне было поручено обновить проект VB с VS 2003 до Vs 2017. После попытки стандартного обновления Visual Studio и получения множества проблем я приступил к исследованию.Оказалось, что лучший способ сделать это, согласно моим исследованиям, это создать новый проект в VS 2017, а затем скопировать все файлы из старого проекта в новый, а затем обработать ошибки.

Я сделалэто и добавил необходимые ссылки, изменил необходимые пути и к моему огорчению, получил 11 118 ошибок.Наибольшая сумма ошибок:

  1. При 7235 ошибках Код: BC31429 - «объект» неоднозначен, поскольку в классе «класс» существует несколько видов членов с этим именем.

  2. При 2217 ошибках Код: BC30269 - 'function ()' имеет несколько определений с одинаковыми сигнатурами.

Эти ошибки, для меня, указывают на дублирование сортов,Однако я не смог ничего найти на эту тему.Я все еще немного зелен в этой профессии, поэтому я могу упустить что-то очевидное.

Мои вопросы: я пропустил что-то очевидное?Я FUBAR'd этот проект?Как мне решить эту проблему?

Спасибо

Редактировать: Некоторые примеры этих ошибок

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 голосов
/ 20 июня 2019

Вы пытаетесь совершить большой скачок сразу через множество технологических изменений, как явных, так и скрытых. Возможно, было бы лучше разбить обновление на этапы, попытавшись сначала перейти с эпохи VS 2003 до, скажем, эпохи VS 2010, установив более старую версию VS отсюда . Это может уменьшить количество ошибок, с которыми вы изначально сталкиваетесь, и позволить вам сначала их устранить (и, возможно, предотвратить взаимодействие нескольких поколений ошибок друг с другом), а затем перейти к последующему обновлению (или обновлениям) до VS 2017.

...