【发布时间】:2018-07-01 03:54:45
【问题描述】:
我正在开发的产品需要注册类型库文件(后缀.tlb),以便组件之间的内部 COM 通信正常工作。在生产机器上,此注册由 InstallShield 安装程序执行。然而,在开发人员机器上,到目前为止,我们依靠实用程序 regtlibv12.exe 来完成这项工作。
在将我们的开发环境升级到 Visual Studio 2017(以前的 Visual Studio 2013)时,我们发现 regtlibv12.exe 不再存在。在整个机器中快速搜索regtlib*、tlb*.exe 和其他可能的模式并没有产生任何结果。另外,我的互联网搜索结果没有产生任何有用的信息——但我可能只是使用了错误的关键字......
您知道与 Visual Studio 2017 一起部署的任何实用程序可以替换 regtlibv12.exe 吗?可以从 PowerShell 脚本运行的任何内容都是可以接受的。同样可以接受的是相关 .NET API 的提示,我可以用它来自己编写注册过程的代码(我什至可以尝试 p/invoke Win32 函数)。 不可接受的是需要作为构建过程的一部分运行的解决方案 - 我不希望在构建服务器上注册类型库!
如果这很重要:.tlb 文件是从带有tlbexp.exe 的 .NET 程序集生成的。
【问题讨论】:
-
这就是 tlbexp.exe 的作用。为什么你不想在构建服务器上使用它并不明显。
-
例如...语法将被删除,但这里是:
...显然填写正确的 guid 等。用于隔离 COM 的 Google -
@herzbube,这是我不清楚的地方:您正在寻找一个替换
regtlibv12的替代品,它确实 注册了库,但您不再 要注册吗? FWIW,看看this 是否有帮助。 -
“填写注册表”?如果您不经常更改 guid(为什么会这样?),它将始终创建相同的条目。像其他人一样,我不明白您要解决什么真正的问题。否则很容易编写自己的工具:stackoverflow.com/questions/23487332/…
-
更改文件版本不会更改注册 guid,仅更改键值。如果您也想自己注册,这里是另一个链接:stackoverflow.com/a/35789844/403671 PS:我不回答我不明白的问题,因此 cmets。
标签: visual-studio com visual-studio-2017 regtlib