Регистрация 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 в зависимости от объема установки).

Другие вопросы по тегам