WiX: Installer сбрасывает значение Property в Repair mode
От: Peters07  
Дата: 11.03.09 12:56
Оценка:
Привет Всем,
Есть проблема, не могу понять в чем может быть дело.

Есть задача:
инсталлятор на Wix, нужно установить мой файл плагина в папку плагинов для Adobe Acrobat, например для версии 6.0 это будет папка:
'C:\Program Files\Adobe\Acrobat 6.0\Reader\plug_ins\'
для этих целей была написана Custom Action, которая устанавливает нужное значение Property, см. логи инсталляции:
PROPERTY CHANGE: Adding ACROBATPLUGINSDIR property. Its value is 'C:\Program Files\Adobe\Acrobat 6.0\Reader\plug_ins\'.

Эта Propery используется как Directory для моего компонента ArPluginComponent, см. логи инсталяции:
...
Executing op: SetTargetFolder(Folder=C:\Program Files\Adobe\Acrobat 6.0\Reader\plug_ins\)
Executing op: FileCopy SourceName=ArPlgFnd.api|ArPlgFind.api,SourceCabKey=ArPlgFind.api,DestName=ArPlgFind.api,Attributes=16384,FileSize=77824,PerTick=32768,,VerifyMedia=1,,,,,CheckCRC=0,Version=1.1.1.10,Language=1033,InstallMode=58982400,,,,,,,)
File: C:\Program Files\Adobe\Acrobat 6.0\Reader\plug_ins\ArPlgFind.api; To be installed; Won't patch; No existing file
Source for file 'ArPlgFind.api' is compressed
Note: 1: 2318 2: C:\Program Files\Adobe\Acrobat 6.0\Reader\plug_ins\ArPlgFind.api
Note: 1: 2360
...

Все работает замечательно, до тех пор, пока не установили новую версию Adobe Acrobat 8.0, для которой
папка плагинов будет другой:
'C:\Program Files\Adobe\Acrobat 8.0\Reader\plug_ins\'

Если запусить мою инсталляцию в режиме восстановления (REINSTALL=ALL, REINSTALLMODE=vamus),
то по логам наблюдаем следующее:
1) отрабатывает Custom Action, которая успешно устанавливает новое значение Property, см. логи инсталляции:
PROPERTY CHANGE: Adding ACROBATPLUGINSDIR property. Its value is 'C:\Program Files\Adobe\Acrobat 8.0\Reader\plug_ins\'.
2) начинает работатать последовательность CostInitialize, FileCost, CostFinalize которая сбрасывет мое новое значение на старое:
...
Doing action: CostFinalize
Note: 1: 2205 2: 3: ActionText
FileCost. Return value 1.
...
Note: 1: 2205 2: 3: MsiAssembly
Note: 1: 2228 2: 3: MsiAssembly 4: SELECT `MsiAssembly`.`Attributes`, `MsiAssembly`.`File_Application`, `MsiAssembly`.`File_Manifest`, `Component`.`KeyPath` FROM `MsiAssembly`, `Component` WHERE `MsiAssembly`.`Component_` = `Component`.`Component` AND `MsiAssembly`.`Component_` = ?
PROPERTY CHANGE: Modifying ACROBATPLUGINSDIR property. Its current value is 'C:\Program Files\Adobe\Acrobat 8.0\Reader\plug_ins\'. Its new value: 'C:\Program Files\Adobe\Acrobat 6.0\Reader\plug_ins'.

Соответственно, файл плагина не переписывается в новую папку !

Если удалить и установить программу заново, то все снова работает нормально, плагин устанавливается в новую папку без проблем.

Вопрос:
это нормальное поведение системы, если да, то как можно попробовать решить эту проблему ?
если нет, то в чем может быть ошибка ?

Заранне спасибо за ответы.
wix windows installer
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.