【问题标题】:Getting the "version" number of a TLB获取 TLB 的“版本”号
【发布时间】:2018-04-01 22:17:48
【问题描述】:

旧版应用程序会显示其所有组件的版本号,这些组件应该是 DLL。我们出于各种原因通过将 TLB 放在被查询的文件夹中来欺骗应用程序。但是,当它列出版本信息时,它会显示为“未知”,因为 TLB 文件没有文件版本属性。

当我们使用 regasm filename.dll /tlb:filename.tlb 生成 TLB 时,有没有办法让 regasm 生成一个 TLB,使其具有文件版本?我一直无法在网上找到有关此的任何信息。我认为这是不可能的,因此我们必须想出一个解决方法......

【问题讨论】:

  • TBL 文件确实支持文件版本,因此您可以使用工具在 regasm 后添加文件版本,例如:stackoverflow.com/questions/284258/…
  • 正确使用 tlb 文件并不是很明显。它们不包含任何代码,只是声明。它们完全等同于 C# 程序集中的元数据。并且通常同样嵌入在实现库的可执行文件中。在一些极端情况下,您也需要部署它们,但它们并不常见。它们确实有一个版本号,只是 major.minor,在 Project > Add Reference > COM 选项卡中可见。检查是否可行,调用 LoadTypeLib 获取 ITypeLib,调用其 GetLibAttr() 方法。

标签: c# windows com regasm fileversioninfo


【解决方案1】:

查看TypeLibVersion 程序集属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-23
    • 1970-01-01
    • 2017-03-17
    • 2012-07-01
    • 1970-01-01
    • 2015-10-26
    • 2014-08-09
    • 1970-01-01
    相关资源
    最近更新 更多