Условное удаление предыдущей версии в Wix - PullRequest
1 голос
/ 13 ноября 2009

Я делаю установщик для программного обеспечения, используемого для отладки встроенных ядер ARM (OpenOCD), и этот установщик автоматически удаляет предыдущие версии - это просто. Однако иногда было бы желательно иметь более одной установленной версии (каждая версия имеет свою собственную папку, поэтому здесь нет конфликта) из-за различных (не) проблем совместимости и т. Д.

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

В основном, есть последовательность установки:

<InstallExecuteSequence>
    <Custom Action="NewerVersionDetected" After="FindRelatedProducts">DOWNGRADE</Custom>
    <RemoveExistingProducts After="InstallFinalize"/>
</InstallExecuteSequence>

Я знаю, что RemoveExistingProducts можно сделать условным, поместив условие между тегами RemoveExistingProducts, но ... каким должно быть условие? Существует много информации о том, как сделать функции условными или о таких условиях, как версия ОС и некоторые записи реестра, но я не нашел никакой полезной информации о "пользовательских условиях" ...

Допустим, в дереве объектов есть этот элемент:

<Feature Id="UninstallOlderVersionFeature" Title="Uninstal previous versions" Level="1" Description="..."/>

Как сделать удаление предыдущей версии условным с помощью этой функции (или любого другого метода, который пользователь мог выбрать во время установки - вопросительного окна или отдельного окна или чего-либо другого)?

Любая помощь приветствуется (мной и пользователями программы установки), так как я не очень хорош в Wix и XML (я - человек со встроенным ПО (;)

Если потребуется дополнительная информация по всему файлу Wix - сообщите мне, и я опубликую соответствующие биты.

1 Ответ

2 голосов
/ 13 ноября 2009

Попробуйте это:

<RemoveExistingProducts After="InstallFinalize">
<![CDATA[&UninstallOlderVersionFeature=3]]>
</RemoveExistingProducts>

Это состояние, в котором выбрана функция. «3» означает, что компонент выбран для установки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...