Dll Excel COM加载项的手动注册
我使用ATL COM创建了一个Excel加载项。通常,此加载项是使用自注册安装的,但我不想这样做。我创建了一个安装程序,可以手动将所有内容添加到注册表中。到目前为止,一切似乎都加载了,因为Excel看到了加载项,但我总是在尝试在启动时加载它时出错。甚至LoadBehavior也从3变为2。现在,我正在使用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或接口,因此我不确定需要在其中放置什么。有没有
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对象,因此始终需要进行自注册。我希望最终能够摆脱这种状况。