У меня есть установщик для расширения Lotus Notes. Мне нужно добавить записи в файл notes.ini
, чтобы он вызывал мое расширение. Я использую <IniFile addTag>
следующим образом:Wix IniFile addTag также добавляет тег во время патча, в результате чего несколько записей ini-файла
<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.
Есть ли способ справиться с этим без написания пользовательского действия?
Спасибо за указатель. Использование ' ' решает эту проблему. К сожалению, я также обнаружил, что проблема с установкой исправления также вызывает эту проблему. Кажется, не существует переменной REPAIR, и я не разработал выражение, чтобы исключить и ремонт. –
jsparkes
@jsparkes См. Эту статью [http://code.dblock.org/msi-property-patterns-upgrading-firstinstall-and-maintenance] при обнаружении сценариев. Также комментарий к статье об обновленном элементе обновления WiX. –