有人使用 Visual Studio 2010 将 VB6 项目迁移到 .Net 吗?
我已经在 VS2005 中测试了迁移,但是生成的 .Net 代码非常混乱,因此我们决定不迁移到 .Net。那么VS2010的迁移向导比VS2005或VS2008中的向导有改进吗?
2008 年肯定没有,如果 2010 年有任何不同,我会感到非常惊讶。
VB6 和 VB.net 是完全不同的语言,MS 从未正式认可除简单应用程序之外的任何内容的自动迁移路线。迁移路径并不简单。周围有几家公司提供迁移服务,我没有尝试过,但我的建议是自己管理。
我们目前有几个主要用 VB6 编写的应用程序。我们的立场是,如果没有充分的理由,现有的工作代码不会迁移到 .net,但所有新代码都必须用 .net 编写(我们实际上选择了 C#)
这意味着,如果我们想向现有 VB6 应用程序添加新功能,则该功能必须在 .net 中通过一些互操作来实现。随着时间的推移,应用程序逐渐变得越来越倾向于 .net,越来越少地采用 VB。我们现在有 1 个应用程序只有一个很小的 VB6 组件,由于这种逐步迁移方法,其余部分几乎完全在 .net 中。它对我们来说非常有效。一旦我们达到了 VB6 部分最少的阶段,我们只需手动转换剩余的代码,无需高成本,因为只剩下一点点了。
正如许多人指出的那样,我非常怀疑 VB6 升级向导是否会做更多的工作。 Visual Studio 中的 VB6 升级向导实际上是 ArtinSoft 的 Visual Basic Upgrade Companion 的精简版。
升级一个不平凡的 VB6 应用程序是一项相当耗时的任务,但有许多很棒的文章(例如这篇文章)可以帮助您铺平道路:
良好的方法论和专业工具(例如 ArtinSoft 和 Code Architects 的工具)的结合有望取得成功的结果。
Visual Studio 2010 不再提供 Visual Basic 6 迁移向导工具,如顶部段落中提到的此处。此页面链接到建议的第 3 方 VB6 迁移工具的列表。
我严重怀疑这一点,VB10 没有从 VB6 引入任何 VB7、8 或 9 中没有的功能,因此他们不会有新的理由来更新 2005 年不存在的(可以说是不充分的)升级向导.
由于VS2010仍处于Beta阶段,所以很难说最终产品的表现如何。现在看来,迁移代码仍然有点不稳定。
我敢说,VS2010 在导入 VB6 项目这样古老的东西方面不会比以前的版本更好。很可能,无论发生什么,您都必须重写该应用程序的很大一部分才能从 .NET 中获得任何好处。
由于一些基本的语言变化,VB 6 的 Visual Studio 转换充其量是不稳定的。使用像 VBMigration Partner
这样的第三方工具,您可能会取得更好的成功将 VB6 项目迁移到 .NET,尤其是使用 Visual Studio 2010,确实是一项重要任务,通常需要重写大部分代码。
Visual Studio 2010 中的迁移向导相对于 VS2005 和 VS2008 中的版本有所改进。虽然它仍然自动执行部分过程,但您可能仍然发现大量的手动调整是必要的。该向导主要协助初始转换,您可能仍然会遇到需要重写或进行重大修改的问题。
总体而言,虽然 VS2010 中的迁移向导有所改进,但从 VB6 迁移到 .NET 仍然是一个复杂的过程,通常需要大量的手动工作才能获得高质量的结果。