Всегда выполняйте удаление / переустановку во время обновления
У меня небольшие проблемы с пониманием того, как 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. Вот некоторые ресурсы, чтобы начать работу:
- Смотри, без рук: инструменты автоматизации InstallShield
- Интерфейс автоматизации
- Installshield Build Automation
Однажды я создал процесс сборки, используя этот вид сценариев VB, а также инструмент сборки FinalBuilder, который позаботился об остальной части процесса сборки. Я думаю, что FinalBuilder может иметь действие для Installshield к этому моменту, так что вы можете вообще обойти сценарии. Я не знаю точно. Просто хотел связать с GUI, чтобы вы могли видеть, как выглядит инструмент. Дальнейшие скриншоты.