Dll Excel COM加载项的手动注册

Dll Excel COM加载项的手动注册,dll,com,wix,registry,atl,Dll,Com,Wix,Registry,Atl,我使用ATL COM创建了一个Excel加载项。通常,此加载项是使用自注册安装的,但我不想这样做。我创建了一个安装程序,可以手动将所有内容添加到注册表中。到目前为止,一切似乎都加载了,因为Excel看到了加载项,但我总是在尝试在启动时加载它时出错。甚至LoadBehavior也从3变为2。现在,我正在使用RegistryKey和RegistryValue节点添加值,但是当我使用类似的主题查看时,我没有理解Rob提到的.rgs脚本没有任何代理clsid或接口,因此我不确定需要在其中放置什么。有没有

我使用ATL COM创建了一个Excel加载项。通常,此加载项是使用自注册安装的,但我不想这样做。我创建了一个安装程序,可以手动将所有内容添加到注册表中。到目前为止,一切似乎都加载了,因为Excel看到了加载项,但我总是在尝试在启动时加载它时出错。甚至LoadBehavior也从3变为2。现在,我正在使用
RegistryKey
RegistryValue
节点添加值,但是当我使用类似的主题查看时,我没有理解Rob提到的.rgs脚本没有任何代理clsid或接口,因此我不确定需要在其中放置什么。有没有在线教程可以帮助我进一步理解WiX中的手动注册

编辑

因此,我假设代理信息来自.idl文件,而不是.rgs文件。如果这是真的,我认为我填写了所需的正确信息。但是,Excel仍然表示在运行时加载加载项时出错。如有任何其他信息,将不胜感激

例如:

<File Id="AddinDll" Name="addin.dll" Source=".\addin.dll" KeyPath="yes" >
    <TypeLib Id="TYPELIB-ID-HERE" MinorVersion="0" MajorVersion="1" Language="0" Description="addin" HelpDirectory="INSTALLLOCATION" >
        <Class Id="GUID-HERE" Context="InprocServer32" ThreadingModel="apartment" Version="1.0" Programmable="yes" Description="Example" >
            <ProgId Id="Addin.Example.1" Description="Example" >
                 <ProgId Id="Addin.Example" Description="Example" />
            </ProgId>
        </Class>

        <Class Id="PROXY-STUB-CLSID-HERE" Context="InprocServer32" ThreadingModel="both" >
            <Interface Id="INTERFACEID-HERE" Name="IExample" />
        </Class>
    </TypeLib>
</File>


尝试在文件上运行Heat,以确保获得所有必要的注册信息。我试过加热。它抛出一个错误,表示无法打开DLL。由于它是一个ATL COM对象,因此始终需要进行自注册。我希望最终能够摆脱这种状况。