Wix - удаляет все файлы, когда применяется серьезное специальное обновление - PullRequest
2 голосов
/ 12 января 2012

В предыдущей версии установщика, созданной Wix, существует следующий код:

<InstallExecuteSequence>
<RemoveExistingProducts After="InstallInitialize" />
</InstallExecuteSequence>

Чтобы обойти ошибку в установщике Windows, описанную в этой статье базы знаний, * код 1005 * имеетисправлено:

<InstallExecuteSequence>
<RemoveExistingProducts After="InstallFinalize" />
</InstallExecuteSequence>

Но теперь, если я устанавливаю программу с установщиком с первым кодом, а затем устанавливаю программу с установщиком со вторым кодом без удаления установленной программы, все файлы удаляются, и мой путь существует пустыми папками (все файлыв обоих установщиках одинаковое имя).

Если я открою второй установщик и нажму Восстановить - все файлы появятся.

Что не так и как эту проблему исправить?

PS Извините замой английский: (* ​​1015 *

1 Ответ

2 голосов
/ 12 января 2012

Просто предположение: похоже, что первая и вторая установки устанавливают одинаковые файлы , но как часть компонентов с различными идентификаторами компонентов . Чтобы убедиться в этом, вы можете открыть оба msi-файла с помощью orca.exe и сравнить идентификаторы компонентов.

Идентификаторы компонентов должны оставаться такими же, чтобы их можно было правильно сосчитать. В противном случае вы получите разные компоненты, пытающиеся управлять одними и теми же файлами, что в этом случае приведет к исчезновению файлов при удалении одного из компонентов.

Если вы следуете правилу установщика Windows, что содержимое компонента никогда не должно изменяться (то есть никогда не удалять и не добавлять в него файлы), тогда GUID компонентов, генерируемые wix, должны автоматически оставаться стабильными. Это одна из причин, по которой лучше иметь один компонент на файл.

...