4

谁能告诉我如何将 vb6(COM dll 的 ocx 和 exes)的遗留应用程序转换为使用 Regfree COM 。

我尝试在 Visual Studio 中打开 dll 并创建清单文件,但其中一些 dll 出现错误。

有没有什么工具可以帮助我完成这个过程?

我尝试了一个名为 regsvr42 的 codeproject 工具,它没有完全创建清单。

我使用了诸如 PE explorer 之类的工具来获取所有类型库信息,但是将它们转换为清单文件太难了。

我们已经开始将它迁移到.NET,几个月来我们必须部署它,如果它是基于 xcopy 的部署会更容易。

4

4 回答 4

4

要创建清单文件,您可以尝试使用http://mmm4vb6.atom5.com/中的 Make My Manifest 。

编辑MMM 网站已关闭。我在这里看到作者在托管方面遇到了问题,并提供了另一个位置来获取 Make My Manifest -在此处下载

如果您可以控制对象的创建,则可以使用http://www.thecommon.net/10.html中的 DirectCOM

请记住,如果使用的 DLL 或 OCX 之一正在使用 CreateObject 调用动态创建其他 COM 对象,则该引用将不会存储在 vbp 项目文件中,您将不会获得完整的清单文件。可能您必须在应用程序运行时捕获对象创建。Depends.exe 应用程序可以分析正在运行的应用程序并报告所有使用的 dll。我不知道是否有工具可以找到额外的 COM 相关信息。

于 2008-11-13T14:03:03.693 回答
1

在 MSDN 上的这篇文章中有一个很好的演练:COM 组件的免注册激活:演练

于 2008-11-25T18:35:08.273 回答
0

Make My Manifest 可以适应后期绑定和早期绑定。您只需通过文件位置或 ProgId 手动添加对后期绑定依赖项的引用。

您可以查看http://mmm4vb6.atom5.com/mmm-demo-1248.html以获得使用该实用程序的更多帮助。

于 2008-11-13T17:36:23.467 回答
0

MakeMyManifest 被誉为为 VB6 项目创建清单的自动工具,我自己没有尝试过。 DirectCOM也有粉丝,我也没试过。

编辑MMM 网站已关闭。我在这里看到作者在托管方面遇到了问题,并提供了另一个位置来获取 Make My Manifest -在此处下载

有一种半自动技术。您可以使用 Visual Studio 2008 创建清单(您可以使用免费版本,如 Visual Basic Express Edition)。然后手动进行一些编辑以使清单适用于 VB6。有关分步说明,请参阅此 MSDN 文章的这一部分- 忽略有关 ClickOnce 的其余文章。

于 2009-03-17T22:21:29.367 回答