我有一个在Visual 2012中构建的具有公共COM/ActiveX接口的库。我有一个用WiX编写的这个库的安装程序。除了在我的构建服务器上,我们希望在没有管理权限的情况下构建安装程序,这一切都很好。
这是问题,目前我有“注册COM互操作”检查。这两种方法都生成一个TLB文件,并在构建时注册库(我认为)。在构建时注册需要管理员权限,所以如果我不使用它们进行构建,生成就会失败。
但是,如果我取消选中"Register互操作“以便可以在没有管理权限的情况下进行构建,则不会生成TLB文件。所以我的WiX安装程序无法构建。
我可以看到两种可能的解决方案:
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>发布于 2017-10-18 18:45:53
如果无法注册COM互操作,则不会生成tlb。例如,由于缺少管理员权限,注册COM互操作可能会失败。
"TlbExp.exe“是构建tlb文件的命令。要使用它,请取消项目属性的编译选项卡上的“”选项,这样构建将停止注册失败。然后,通过单击"Build .“,将其添加为post生成事件。按钮位于同一选项卡上:
"$(FrameworkSdkDir)\bin\NETFX 4.0 Tools\tlbexp.exe" "$(TargetFileName)" "$(TargetName).tlb" https://stackoverflow.com/questions/24048352
复制相似问题