【问题标题】:cannot update a VB6 project reference无法更新 VB6 项目参考
【发布时间】:2014-10-16 14:20:56
【问题描述】:

我们正在VB6环境下开发OCX控件(请不要问为什么...) 此 OCX 必须与 .net dll 交互。到目前为止,一切都很好。 但是最近我们在 dll 的主类中添加了两个属性,并且需要向 ocx 消费者提供对它们的访问权限。 我们对 dll 进行了强命名,使用 regasm 取消注册它,然后使用 /codebase 和 /tlb 参数再次注册它。一切顺利。 但是 VB6 项目继续获得以前的版本,因此缺少新的属性。 我们能做些什么来克服这种烦恼? 当然,我们取消选中引用、存储项目、关闭环境、重新打开它、刷新引用等都无济于事。 TIA

【问题讨论】:

  • 它必须缓存在某处
  • 一些问题: 1) 新属性是否标记为公开? 2) 您是否在 GAC 中部署 DLL? (如果使用 /codebase 参数则不应该这样做)。 3)在VB6中,是否直接引用TLB文件来添加OCX控件? (如果是,请检查您使用的 TLB 是否是 regasm 生成的最新 TLB。您也可以使用以下方法反汇编 TLB 文件:microsoft.com/en-us/download/details.aspx?id=6510
  • 到目前为止,使用 regasm /codebase 注册 dll 就足够了。当然,生成的 tlb 是正确的,因为我们使用了 /tlb 参数。当然,新属性是公开的。 .tlb 指向的就是那个。
  • “它必须缓存在某个地方”...是的,我认为您是对的...但问题是:在哪里?如何知道在哪里?

标签: .net vb6 ocx


【解决方案1】:

所有的麻烦是我们忘记在 dll 中的主类的接口定义中包含新属性。 完成后,上述步骤就可以顺利进行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多