Всегда выполнять удаление/переустановку во время обновления

У меня возникли проблемы с пониманием того, как InstallShield обрабатывает обновления.

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

Это очень простой установщик, он просто выводит из нескольких проектов Visual Studio (приложение EXE, некоторые библиотеки DLL и т.д.) и устанавливает их все в Program Files. Существует только одна функция и она всегда установлена.

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

Я пробовал это раньше (увеличивая номер версии, но не меняя код продукта или код обновления), но каждый раз, когда я это делаю, когда я запускаю установщик для "обновления" продукта, он говорит "Возобновление мастер для [ProductName]", а иногда некоторые из файлов не заменяются их новыми коллегами из более нового установщика.

Я не увеличиваю число "ревизий" номера версии. Я знаю, что это игнорируется. Как правило, я попробую что-то вроде 2.0.3 => 2.0.4.

Как настроить InstallShield так, чтобы он автоматически удалял любые предыдущие версии, устанавливал самую новую версию и представлял ее пользователю как "Обновление" или "Обновление", если у них уже установлена ​​предыдущая версия? Если нет, он должен быть установлен как обычный ( "Установить", а не "Обновить" ).

Я использую InstallShield 2013 Pro (версия 20 SP1), и я использую редактор InstallShield в Visual Studio 2010.

Ответ 1

Что вам нужно - это серьезное обновление . Это, по сути, автоматическое удаление существующей версии и переустановка новой версии, выполненной как одна операция с помощью самого механизма установщика Windows, после того, как вы создадите таблицу Upgrade MSI, установите новую ProductVersion и измените код пакета и продукта. Это механизм обновления с наименьшим уровнем ошибок в установщике Windows. Чтобы выполнить крупное обновление в Installshield, перейдите в представление Upgrades и добавьте элемент обновления. Затем вы следуете мастеру или страницам GUI и задаете параметры обновления. Я посмотрю, смогу ли я найти лучшую ссылку для вас сейчас, но это должно вас заставить.

Чтобы действительно понять обновления Windows Installer, вы должны прочитать эту книгу. Или это Microsoft страница MSDN.

Просто для полноты: незначительное обновление - это обновление существующей установки без ее удаления, как правило, с самого начала становится труднее. Применяется ряд технических ограничений. Вот очень хорошее резюме того, что требуется для незначительного обновления для работы (а также других деталей): http://www.installsite.org/pages/en/msi/updates.htm

Ответ 2

В этом случае вы можете использовать Автоматизация COM для автоматизации процесса выпуска с использованием Javascript или VBScript. Это знакомый процесс, если у вас есть автоматические другие продукты, такие как Word или Excel. Вот некоторые ресурсы для перехода:

Я сделал процесс сборки, используя этот тип скриптов VB, а также инструмент сборки FinalBuilder, который позаботился об остальном процесса сборки. Я предполагаю, что FinalBuilder может иметь действие для Installshield к этому моменту, чтобы вы вообще могли обойти сценарии. Я не знаю точно. Просто захотелось подключиться к графическому интерфейсу, чтобы вы могли видеть, как выглядит этот инструмент. Дальнейшие скриншоты.