【问题标题】:Where the interop version is coming from when using TlbImp使用 TlbImp 时互操作版本的来源
【发布时间】:2019-11-03 05:54:54
【问题描述】:

我正在使用 tlbimp 生成 COM 程序集的 .Net 互操作。这个 COM 程序集有一个像 7.X.X.X 这样的产品版本和文件版本,但是当我使用 TlbImp 时,我的互操作有一个像 1.Y.0.0 这样的版本。我知道当我通过执行命令行的参数使用 TLBImp 时我可以更改这个版本,但我想知道这个版本来自哪里。 我可以访问此 COM 程序集的清单吗? 为什么我在资源管理器的文件属性上看不到这个版本?

我有这个程序集的不同版本,我看到生成的版本总是不同,但我找不到这个版本的来源。

谢谢

【问题讨论】:

    标签: com version manifest


    【解决方案1】:

    我有一种预感,它是 typelib 的版本。我采用了一个具有 1.0 版类型库的测试项目并在其上运行 tlbimp,它生成了一个文件版本为 1.0 的导入程序集。然后我将 typelib 的版本更改为 1.19,重新编译并重新运行 tlbimp。新导入程序集的文件版本是 1.19(嗯,1.19.0.0)。

    使用 OleView,您可以加载用于 tlbimp 的 EXE/DLL 的类型库。检查类型库的版本。将其与导入程序集的文件版本进行比较。我打赌他们匹配。

    他们希望版本号匹配是有道理的。

    【讨论】:

    • 确实,如果我使用 OleView,我会找到这个版本 // Generated .IDL file (by the OLE/COM Object Viewer) // // typelib filename: [ uuid (984EF3B1-C6E4-11D0-8713-0020AFEE2C2A), version(1.15), ") 我想知道,没有其他方法可以从 Windows UI 中查看该信息......我确实很高兴你的回答,因为我已经可以在那里找到它,但我想知道是否有更明显的东西......
    猜你喜欢
    • 2014-06-20
    • 2014-08-10
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    • 2012-08-06
    • 2011-02-09
    • 2012-07-10
    • 2011-12-22
    相关资源
    最近更新 更多