0

我正在对多年前用 VB6 编写的古老应用程序进行一些维护。在某些时候,它被迁移到 VB.NET,几乎没有任何变化。我不知道他们是如何或为什么做到这一点的。

源代码管理中的项目包含对警告“”的引用Interop.MSHierarchicalFlexGridLibAXInterop.MSHierarchicalFlexGridLib带有警告<The system cannot find the reference specified>。该项目包含超过 102 个错误(如果您是 Visual Studio 2008 的新手,这是错误列表中显示的最大错误数)。

我删除了这两个损坏的引用并添加了对 Microsoft Hierarchical Flex Grid 6.0 COM 控件的引用。这更正了对 的所有引用MSHierarchicalFlexGridLib.MSHFlexGrid,将错误数量减少到 64 个。剩余的错误是对AxMSHierarchicalFlexGridLib命名空间的未解析引用的结果,几乎完全在 Designer 代码中。起初我认为这可能只是一些Import技巧(重命名命名空间),但控件的名称也以“Ax”(AxMSHierarchicalFlexGridLib.AxMSHFlexGrid)为前缀。我猜“Ax”只是代表“Active X”并且指的是完全相同的控件,但在我去更改大部分 Designer 代码中的 60 多个引用之前,我想了解更多。到目前为止,我的 Google-fu 让我失望了。

问题:

  • AxMSHierarchicalFlexGridLib.AxMSHFlexGrid一样的 MSHierarchicalFlexGridLib.MSHFlexGrid吗?

  • 如果相同,为什么设计器更改名称,简单地查找-替换对重命名命名空间的所有引用是否安全?(另外,第二个参考AXInterop.MSHierarchicalFlexGridLib来自哪里?)

  • 如果不一样,我缺少的 COM 控件的名称是什么?

另一个奖励问题:

源代码管理中的项目似乎只包含对互操作的引用,而不是对 COM 对象的引用。我可以相信,不知道自己在做什么的人设法偶然发现了一些“有效”的东西,但以防万一……Vis​​ual Studio 的许多自动化向导、工具等有什么办法吗?参与?我想确保这种情况不会重复。

谢谢

PS 我只是从头开始重写这个项目,但是仅 frmMain 代码文件(我不敢说“类”)就包含近 17,000 行,所以这项工作需要的时间比我允许的要多。

4

1 回答 1

2

如前所述,名称以 AxInterop 开头的程序集通常由 Aximp.exe 工具自动生成。它创建了一个从 Winform 的 AxHost 类派生的控件,并支持在窗体上放置 ActiveX 控件。

考虑到 MSHFlexGrid(一个 VB6 控件)的使用年限,您可能希望将 DLL 签入到源代码控制中,这样您就不会再次丢失它。

于 2012-08-28T19:37:33.130 回答