【问题标题】:how to convert vb6 to vb.net programmatically如何以编程方式将 vb6 转换为 vb.net
【发布时间】:2010-10-15 04:47:49
【问题描述】:

Visual Studio 附带将 vb6 代码转换为 vb.net 的向导。有没有办法通过代码调用这个转换?

【问题讨论】:

    标签: .net vb.net vb6 vb6-migration


    【解决方案1】:

    说实话,当从 VB6 更新到 .NET 时,最好手动进行,这样您可以改进解决方案,而不是依赖可能无法转换为您想要的方式的 3rd 方工具。

    【讨论】:

    • 这里必须同意 kyndigs。如果您尝试自动转换,您将错过大量重构机会和利用 .net 的方法。最后,自动化可能会更快地为您带来结果,但从长远来看,它会让您付出代价。
    【解决方案2】:

    不,这不能从代码中访问。这个过程主要由命令行工具驱动,没有面向公众的 API(至少我知道)。

    您能帮助我们了解您打算如何使用它吗?

    【讨论】:

    • 为了使迁移顺利进行,需要同时支持这两个应用程序。目前我正在做的是使用 Visual Studio 将部分代码从 vb6 手动复制并粘贴到 vb.net 中。这允许正确地进行初始代码转换。我想自动化这个过程。
    • 我需要的唯一功能是“代码的漂亮列表(重新格式化)”
    【解决方案3】:

    “代码的漂亮列表(重新格式化)”可以通过基于How to: Fix 'Application is Busy' and 'Call was Rejected By Callee' Errors的下一个代码来完成

    // =====================================
    // ==Insert your automation code here.==
    // =====================================
    Command cmd = dte.Commands.Item("Edit.Paste", -1);
    object dummy = new object();
    foreach (var item in Directory.EnumerateFiles(codefolder))
    {
        dte.ItemOperations.OpenFile(PathToEmptyVbFile);
        Clipboard.SetText(System.IO.File.ReadAllText(item));
        System.Threading.Thread.Sleep(500); // to enable vs paste button
        dte.Commands.Raise(cmd.Guid, cmd.ID, ref dummy, ref dummy);
        dte.ActiveDocument.Save(item);
        dte.ActiveDocument.Close();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-10
      • 1970-01-01
      • 2013-02-05
      • 1970-01-01
      • 2011-02-06
      • 1970-01-01
      • 2018-07-03
      • 2011-09-20
      相关资源
      最近更新 更多