首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何生成不注册的TLB文件?

如何生成不注册的TLB文件?
EN

Stack Overflow用户
提问于 2014-06-04 22:01:05
回答 1查看 10.4K关注 0票数 8

我有一个在Visual 2012中构建的具有公共COM/ActiveX接口的库。我有一个用WiX编写的这个库的安装程序。除了在我的构建服务器上,我们希望在没有管理权限的情况下构建安装程序,这一切都很好。

这是问题,目前我有“注册COM互操作”检查。这两种方法都生成一个TLB文件,并在构建时注册库(我认为)。在构建时注册需要管理员权限,所以如果我不使用它们进行构建,生成就会失败。

但是,如果我取消选中"Register互操作“以便可以在没有管理权限的情况下进行构建,则不会生成TLB文件。所以我的WiX安装程序无法构建。

我可以看到两种可能的解决方案:

  1. 有一些方法可以生成TLB,而不必在构建时实际注册它。
  2. 让WiX生成TLB。反正我也没见过这么做。我当前的TLB安装内容直接引用TLB文件,如:xml <File Id="FILE.COM.TLB" KeyPath="yes" Source="..\..\Master\Proj\bin\$(var.Configuration)\Proj.tlb"> <TypeLib Id="{8CC87042-4B1B-4FE4-86D5-A12C1A55C8AA}" Description="PrimProj" HelpDirectory="DIR.BIN.HELP" Language="0" MajorVersion="1" MinorVersion="3"> .... <snip> .... </TypeLib> </File>
EN

回答 1

Stack Overflow用户

发布于 2017-10-18 18:45:53

如果无法注册COM互操作,则不会生成tlb。例如,由于缺少管理员权限,注册COM互操作可能会失败。

"TlbExp.exe“是构建tlb文件的命令。要使用它,请取消项目属性的编译选项卡上的“”选项,这样构建将停止注册失败。然后,通过单击"Build .“,将其添加为post生成事件。按钮位于同一选项卡上:

代码语言:javascript
复制
"$(FrameworkSdkDir)\bin\NETFX 4.0 Tools\tlbexp.exe" "$(TargetFileName)" "$(TargetName).tlb"  
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24048352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档