使用Visual Studio 2010将VB6迁移到.Net

16

有人使用Visual Studio 2010将VB6项目迁移到了.Net平台吗?

我已经在VS2005中测试了迁移,但生成的.Net代码很混乱,我们决定不迁移到.Net。所以,VS2010迁移向导是否比VS2005或VS2008中的向导更加完善?


3
我将一个VB 6项目迁移到了.NET 3.5项目。不过,这次迁移实际上是一次重写。即使你可以直接将代码迁移,你很可能也想要使用完全不同的架构,需要从头开始设计。 - RichardOD
现在没有时间提供完整的答案,但我可以建议浏览标记为vb6-migration的得票最高的问题。例如http://stackoverflow.com/questions/395/how-to-switch-a-large-app-from-vb6-to-vb-net - MarkJ
6个回答

11

2008年时,它肯定没有,如果2010年也没有的话,我会感到非常惊讶。

VB6和VB.net是完全不同的语言,微软从未正式支持过任何超出简单应用程序的自动迁移路线。迁移路径较为复杂。有几家公司提供迁移服务,但我建议您自己管理。

我们目前有几个主要使用VB6编写的应用程序。我们的立场是只有在有充分理由的情况下才将现有的工作代码迁移到.net,但所有新代码必须使用.net编写(我们实际上选择了C#)。

这意味着,如果我们想要向现有的VB6应用程序添加新功能,就必须使用一些交互操作在.net中实现该功能。随着时间的推移,我们的应用程序越来越多地使用.net,而越来越少使用VB。我们有一个应用程序现在仅有一个微小的VB6组件,其余几乎全部使用.net,这得益于这种渐进式的迁移方法。这对我们非常有效。一旦我们达到VB6部分很小的阶段,我们只需手动转换剩余的代码,成本不高,因为只剩下一小部分。


有一些很好的第三方替代品可以取代那个可悲的内置迁移向导:Artinsoft和VBMigration.com。甚至微软英国也推荐它们。更多讨论请参见这里。https://dev59.com/_UbRa4cB1Zd3GeqP4NrU - MarkJ

4

此处所述,Visual Studio 2010不再提供Visual Basic 6迁移向导工具。该页面链接到一系列建议使用的第三方VB6迁移工具。


4
许多人指出,我非常怀疑在VB6升级向导上已经进行了更多的工作。Visual Studio中的VB6升级向导实际上是ArtinSoft的Visual Basic Upgrade Companion的简化版本。
升级一个非平凡的VB6应用程序是一个相当耗时的任务,但有许多优秀的文章,比如这篇文章,可以帮助您顺利完成:
“通过重构实现迁移成功(VSM)”
良好的方法论和专业工具的结合,例如ArtinSoft和Code Architects的工具,将有望取得成功的结果。

+1. 我可以在StackOverflow上指出一些好的讨论,例如在这个问题中 https://dev59.com/_UbRa4cB1Zd3GeqP4NrU - MarkJ

1
我非常怀疑,因为VB10没有引入任何VB6中不存在于VB7、8或9的功能,所以他们更新(可以说是不够完善的)升级向导程序的新原因在2005年时并不存在。

有一些很好的第三方替代方案可以代替糟糕的内置迁移向导:Artinsoft和VBMigration.com。微软英国推荐它们。更多讨论及链接请参见此处:http://stackoverflow.com/questions/395/how-to-switch-a-large-app-from-vb6-to-vb-net/82200#82200。 - MarkJ

0

由于VS2010仍处于测试版阶段,很难说最终产品的表现如何。目前看来,迁移代码仍有些不稳定。

我冒险说,与以前的版本相比,VS2010在导入像VB6项目这样古老的东西方面并不会更好。无论发生什么,您都需要重写该应用程序的大部分内容才能从.NET中获得任何好处。


0

Visual Studio 对 VB 6 的转换效果最多只能算是勉强,因为一些基本语言的变化。你可能会发现使用第三方工具,比如 VBMigration Partner,会取得更好的成功。


非常正确。微软英国推荐两个第三方迁移工具,比内置的VB.NET升级向导更好 - Artinsoft和CodeArchitects VBMigration Partner。这是链接http://msdn.microsoft.com/en-gb/dd408373.aspx - MarkJ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接