.net 从VS 2003升级到VS 2017的项目
我的任务是将一个VB项目从VS2003升级到VS2017。在尝试标准VisualStudio升级并收到许多问题后,我开始研究。事实证明,根据我的研究,最好的方法是在VS 2017中创建一个新项目,然后将旧项目中的所有文件复制到新项目中,然后解决错误 我这样做了,添加了必要的参考资料,改变了必要的途径,更让我懊恼的是,我收到了11118个错误。最大的错误总数为:.net 从VS 2003升级到VS 2017的项目,.net,vb.net,visual-studio-2017,upgrade,visual-studio-2003,.net,Vb.net,Visual Studio 2017,Upgrade,Visual Studio 2003,我的任务是将一个VB项目从VS2003升级到VS2017。在尝试标准VisualStudio升级并收到许多问题后,我开始研究。事实证明,根据我的研究,最好的方法是在VS 2017中创建一个新项目,然后将旧项目中的所有文件复制到新项目中,然后解决错误 我这样做了,添加了必要的参考资料,改变了必要的途径,更让我懊恼的是,我收到了11118个错误。最大的错误总数为: At 7235错误代码:BC31429-“对象”不明确,因为 类“class”中存在多种具有此名称的成员 在2217错误代码:BC302
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
Public Sub New()
我的基地,新的
我在上课
Dim schemaChangedHandler作为System.ComponentModel.CollectionChangeEventHandler=AddressOf Me.SchemaChanged
AddHandler Me.Tables.CollectionChanged,schemaChangedHandler
AddHandler Me.Relations.CollectionChanged,schemaChangedHandler
端接头
受保护的子新建(ByVal信息作为SerializationInfo,ByVal上下文作为StreamingContext)
我的基地,新的
Dim strSchema As String=CType(info.GetValue(“XmlSchema”,GetType(System.String)),String)
如果(不是(strSchema)什么都不是),那么
Dim ds As数据集=新数据集
ds.ReadXmlSchema(新的XmlTextReader(新的System.IO.StringReader(strSchema)))
如果(不是(ds.表格(“注释”)什么都不是),那么
Me.Tables.Add(新的notesdataable(ds.Tables(“Notes”))
如果结束
Me.DataSetName=ds.DataSetName
Me.Prefix=ds.Prefix
Me.Namespace=ds.Namespace
Me.Locale=ds.Locale
Me.CaseSensitive=ds.CaseSensitive
Me.EnforceConstraints=ds.EnforceConstraints
Merge(ds,false,System.Data.MissingSchemaAction.Add)
我是伊尼瓦尔斯
其他的
我在上课
如果结束
Me.GetSerializationData(信息、上下文)
Dim schemaChangedHandler作为System.ComponentModel.CollectionChangeEventHandler=AddressOf Me.SchemaChanged
AddHandler Me.Tables.CollectionChanged,schemaChangedHandler
AddHandler Me.Relations.CollectionChanged,schemaChangedHandler
端接头
_
公共类NotesDataable
新朋友
MyBase.New(“注释”)
我在上课
端接头
Friend Sub New(ByVal表作为DataTable)
MyBase.New(table.TableName)
如果(table.CaseSensitive table.DataSet.CaseSensitive),则
Me.CaseSensitive=table.CaseSensitive
如果结束
如果(table.Locale.ToString table.DataSet.Locale.ToString),则
Me.Locale=table.Locale
如果结束
如果是(table.Namespace table.DataSet.Namespace),则
Me.Namespace=table.Namespace
如果结束
Me.Prefix=table.Prefix
Me.MinimumCapacity=表1.MinimumCapacity
Me.DisplayExpression=table.DisplayExpression
端接头
末级
您正试图一下子跨越许多技术变化,无论是明确的还是微妙的。也许最好将升级分为几个步骤,首先尝试通过安装旧版本的VS从VS 2003时代升级到VS 2010时代。这可能会减少您最初遇到的错误数量,并允许您在进行后续升级(或升级)到VS 2017之前,先解决这些错误(并可能防止多代错误相互影响)。也许您可以提供一些生成这些错误的代码示例。我不确定这是不是真的,但是在2003年没有分部类,所有的设计器代码和表单的用户代码都在同一个文件中。您还没有得到设计器代码文件和用户代码文件中的设计器代码,是吗?您的目标.NET版本是什么?这可能和VS版本一样重要。由于您来自2003年,我假设源版本为1.1,因为在那些日子,.NET版本与VS版本绑定,但不再绑定。在我检查过的表单上,设计器代码位于.vbI的目标4.6.1I将尝试此操作。谢谢你的意见。事实上,我想说的是,被锁定的.NET版本可能会产生更大的潜在影响。e、 g.在转到4.x之前,尝试转到2.0或3.5。依我看,VS版本在整个IMHO上的问题会少一些。@ADyson我倾向于同意,但是我不确定.NET版本与很久以前的VS版本之间的关系有多紧密。通过在不同的技术“时代”(技术术语…)中移动,我的想法是,人们应该能够更好地利用工具、.NET、配置等将问题分解成更易于管理的部分。所有这些都是相对最新的。@JimMSDN使用了几乎所有曾经存在的VS版本,我可以告诉你,2002年是1.0,2003年是1.1。2005年至2.0,2008年至3.5。2010年稍微好一点,而且