Wix IniFile addTag还会在补丁中添加标记,从而生成多个ini文件条目

时间:2014-02-11 17:54:10

标签: wix wix3.7

我有一个Lotus Notes扩展程序的安装程序。我需要在notes.ini文件中添加条目,以便它可以调用我的扩展名。我正在使用<IniFile addTag>,如下所示:

    <Directory Id="LOTUSNOTESINSTALLDIRECTORY">
        <Component Id="NOTESINIADDINMENUS" Guid="{FC239067-1B5D-48b4-AA9A-8B89F62F21E7}" KeyPath="yes" Win64="no">
          <IniFile Id="HLBridgeDLLINI" Action="addTag" Directory="LOTUSNOTESINIDIRECTORY" Name="Notes.ini" Section="Notes" Key="AddInMenus" Value="HLBridge.dll"/>
        </Component>
    ...

这正是我想要的初始安装。但是,当我应用MSP补丁时,该条目会再次被写入,从而导致HLBridge.dll的双重条目。

我已尝试使用"&Feature=3 AND !Feature=2"之类的条件仅在首次安装此功能时执行addTag,但显然在Wix中,此时功能值不可用。 (我找不到stackoverflow的答案告诉我它为什么不起作用。)

也许addLine不会出现此问题,但会禁用其他已安装的Notes扩展程序。

有没有办法在不编写自定义操作的情况下处理此问题?

1 个答案:

答案 0 :(得分:1)

您可以使用其他组件添加IniFile - 标记和其他Condition-tag,因此只有条件才会执行此组件以及相关的IniFile修改满足了。
对于病情本身你也可以看看例如this question其中PATCH - 属性也用于条件。