comctl32.msm (Merge module) Fails on Vista

2019-07-07 19:01发布

问题:

I stuck comctl32.msm in an installer (comctl32.ocx merge module). On XP, comctl32.ocx appears in system32 and everything is happy. On vista, it does not work. Any guesses what I am doing wrong?

I also tried replacing the merge module with a <file> and a lot of registry changes, in a component, but the file didn't move and the registry changes weren't made.

  <Directory Id="SystemFolder" Name="Sys">
    <Merge Id="VBRunMod" Language="1033" SourceFile="Merge\msvbvm60.msm" DiskId="1" />
    <Merge Id="ComCatMod" Language="1033" SourceFile="Merge\comcat.msm" DiskId="1" />
    <Merge Id="OleautMod" Language="1033" SourceFile="Merge\oleaut32.msm" DiskId="1" />
    <Merge Id="ComCtlMod" Language="1033" SourceFile="Merge\comctl32.msm" DiskId="1" />
    <Merge Id="MSCtlMod" Language="1033" SourceFile="Merge\mscomctl.msm" DiskId="1" />
  </Directory>

回答1:

I had <Condition Level="0">VersionNT &gt;= 600</Condition> in the feature, preventing Vista from installing it. I added that code when I was first learning Wix for reasons that I do not recall. Wow, I feel stupid.