Автоматизация сборки : автоматизацию сборки можно использовать несколькими способами для автоматизации создания новых идентификаторов GUID продукта и т. П. Вы должны передать значения в файл проекта WiX и тому подобное, но, возможно, это не то, что вы хотите сохранить. Позвольте мне добавить еще один вариант ниже.
Major Upgrade Element : Я полагаю, у вас есть основной элемент апгрейда? Он заботится об удалении предыдущей версии, если настроен правильно. Обычно вы видите несколько версий в «Установка и удаление программ», когда вы перестраиваете ту же версию и устанавливаете поверх последней установки.
Предложение : вы можете вручную настроить таблицу обновлений для удаления "same version installations"
. Вы берете «auto-magi c» из "MajorUpgrade" element
и делаете все самостоятельно с помощью Upgrade elements
(более старый способ настройки Upgrade table
, что дает более подробный контроль):
Удалите это (или просто закомментируйте его):
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
Добавить это :
<!-- The top of your new source - compiler variables, can be overridden at compile time via candle.exe and light.exe switches -->
<?xml version="1.0" encoding="UTF-8"?>
<?define MyProductVersion = "2.0.0.0" ?>
<?define MyUpgradeCode = "88888888-7777-7777-7777-888888888888" ?>
<..>
<Upgrade Id="$(var.MyUpgradeCode)">
<UpgradeVersion Minimum="$(var.MyProductVersion)" OnlyDetect="yes" IncludeMinimum="yes" Property="DOWNGRADE_DETECTED" />
<UpgradeVersion Property="PRODUCTLINE1" IncludeMinimum="yes" IncludeMaximum="yes" Maximum="$(var.MyProductVersion)" Minimum="0.0.0" />
</Upgrade>
<..>
<!-- You have to add RemoveExistingProducts to the InstallExecuteSequence table -->
<InstallExecuteSequence>
<!-- Potential scheduling (after): InstallValidate, InstallInitialize, InstallExecute, InstallExecuteAgain, InstallFinalize -->
<RemoveExistingProducts After="InstallInitialize" />
</InstallExecuteSequence>
Сводка : вышеизложенное должно позволить вам пересобрать настройки и установить любое число раз, используя тот же номер версии, и процесс установки удалит предыдущую установку "автоматически". Пожалуйста, проверьте. Нет гарантий. Закон Мэрфи. Et c ...: -).
Некоторые ссылки :