任何人都可以告诉我如何将遗留应用程序vb6(COM dll的ocx和exes)转换为使用Regfree COM。

我尝试在visual studio中打开dll并创建了清单文件,但有些dll却出错了。

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

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

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

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

有帮助吗?

解决方案

要创建清单文件,您可以尝试从 http://mmm4vb6.atom5.com/ <使用Make My Manifest / A>

编辑 MMM网站已关闭。我看到作者遇到问题的这里与他们的托管和提供另一个位置,以获得Make My Manifest - 在此下载

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

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

其他提示

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

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

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

MakeMyManifest 作为一种自动工具,可以为VB6项目创建清单,还没试过我自己。 DirectCOM 也有粉丝,我还没试过。

编辑 MMM网站已关闭。我看到作者遇到问题的这里与他们的托管和提供另一个位置,以获得Make My Manifest - 在此下载

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top