Регистрация COM-сервера с помощью Wix
У меня есть следующий код WiX, который регистрирует компонент сервера COM
<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>
И он успешно регистрирует сервер, но когда я запускаю программу в режиме "запустить как", программа не видит COM-сервер.
Пожалуйста, совет - как я должен изменить код WIX
Обновление: ответ - запустить скрипт WiX с повышенными правами или запустить comserver.exe /regserver
с повышенными разрешениями, но это не работает. Я думаю, что приведенный выше скрипт полезен, поэтому я оставляю вопрос как есть и создаю немного другой вопрос
1 ответ
Проверьте стоимость вашей собственности ALLUSERS. Вы должны определить его как 1 или 2, если вы хотите установить для каждой машины. Если он устанавливается как пользователь, обновления реестра будут записываться в HKCU вместо HKLM. ( HKCR может указывать либо на HKCU\Software\Classes, либо на HKLM\Software\Classes в зависимости от объема установки).