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

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

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

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

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

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

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

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

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

2 ответа

Решение

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

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

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

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

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

Другие вопросы по тегам