Installation 在回滚期间在WIX中注销COM组件,是否有必要?

Installation 在回滚期间在WIX中注销COM组件,是否有必要?,installation,wix,com-interop,rollback,Installation,Wix,Com Interop,Rollback,我正在创建一个WIX安装程序项目。安装中的部分工作是注册一些COM组件。通过使用heat.exe生成COM组件声明,我(希望)成功地实现了这一点,尽管在生成wxs文件后,我需要进行一些修改。为了清楚起见,我将COM组件声明粘贴到这里: <ComponentGroup Id="COMComponent" Directory="INSTALLDIR"> <Component Id="COMDll" Guid="MY_GUID1">

我正在创建一个WIX安装程序项目。安装中的部分工作是注册一些COM组件。通过使用heat.exe生成COM组件声明,我(希望)成功地实现了这一点,尽管在生成wxs文件后,我需要进行一些修改。为了清楚起见,我将COM组件声明粘贴到这里:

<ComponentGroup Id="COMComponent" Directory="INSTALLDIR">        
      <Component Id="COMDll" Guid="MY_GUID1">
        <Class Id="{MY_CLASSID1}" Context="InprocServer32" Description="DESCRIPTION1" ThreadingModel="both" ForeignServer="mscoree.dll">
          <ProgId Id="MYID1" Description="DESCRIPTION1" />
        </Class>
...
        <File Id="FILE_ID_1" KeyPath="yes" Source="MY_COM.dll" />  

        <File Id="FILD_ID2" KeyPath="no" Source="MY_COM.tlb">
          <TypeLib Id="{xxx}" Description="xxx" HelpDirectory="INSTALLDIR" Language="0" MajorVersion="525" MinorVersion="0">
            <Interface Id="{xxx}" Name="xxx" ProxyStubClassId32="{00020424-0000-0000-C000-000000000046}" />
...
          </TypeLib>
        </File>

        <ProgId Id="Record" />
        <RegistryValue Root="HKCR" Key="CLSID\{xxx}\Implemented Categories\{xxx}"  Value="" Type="string" Action="write" />
        <RegistryValue Root="HKCR" Key="CLSID\{xxx}\InprocServer32\525.0.4573.25681" Name="Class" Value=" MYID1" Type="string" Action="write" />
...
        </Component>                          
    </ComponentGroup>

...
...
...
我用xxx替换了一些ID,所以它们不是问题。如果还有什么问题,请通知我


现在我的问题是:是否需要明确指定在回滚阶段卸载COM组件?因为我遇到了一些问题,在安装失败后,安装的进一步尝试将无法进行,并且出现了一些“ActiveX对象无法创建”错误。我怀疑这是因为COM组件在上次安装失败时未成功注销。但我不确定。事实上,我在COM互操作方面的知识有限,所以我不确定安装/卸载它们需要什么。任何帮助都将不胜感激。谢谢

当您使用热量收集COM组件时,这就足够了。如果安装失败并回滚,它应该处理取消注册COM组件的问题