我有以下WiX代码,用于注册COM服务器组件。
它成功地注册了服务器,但是当我以“run as”模式运行程序时,程序没有看到COM服务器。请给予建议 - 我应该如何更改WIX代码。
更新:答案是 - 以提升的权限运行WiX脚本或以提升的权限运行
<Component Id="ServerComponent" Guid="<someguid>">
<File Id="comserverid" Name="comserver.exe" Source="path_to_com_server" DiskId="1" Checksum="yes" >
<TypeLib Id="{<TYPELIBGUID>}" Description="ComServer 1.0 Type Library" HelpDirectory="INSTALLLOCATION" Language="0" MajorVersion="1" MinorVersion="0">
<AppId Description="ComServer" Id="{<APPIDGUID>}}">
<Class Id="{<SOMECLASSGUID>}" Context="LocalServer32" Description="ComServerClass Class" ThreadingModel="apartment" Advertise="no">
<ProgId Id="ComServer.ComServerClass.1" Description="ComServerClass Class">
<ProgId Id="ComServer.ComServerClass" Description="ComServerClass Class" />
</ProgId>
</Class>
</AppId>
</TypeLib>
</File>
<RegistryValue Root="HKCR" Key="AppID\comserver.exe" Name="AppID" Value="{<APPIDGUID>}" Type="string" Action="write" />
</Component>
它成功地注册了服务器,但是当我以“run as”模式运行程序时,程序没有看到COM服务器。请给予建议 - 我应该如何更改WIX代码。
更新:答案是 - 以提升的权限运行WiX脚本或以提升的权限运行
comserver.exe /regserver
,但这并没有起作用。我认为上面的脚本很有用,所以我保留问题,并创建一个略微不同的问题。
comserver.exe /regserver
,会发生什么?您能从程序中使用COM对象吗?我怀疑问题不在WIX中,而是在您的COM服务器中。 - Jacob Seleznev