使用 TlbImp 时互操作版本的来源

Where the interop version is coming from when using TlbImp

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

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

谢谢

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

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

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