Я делаю установщик для программного обеспечения, используемого для отладки встроенных ядер 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 - сообщите мне, и я опубликую соответствующие биты.