InstallShield - Как собрать установщик обновлений
контекст
В настоящее время у меня есть задача создания следующей версии нашего установщика программного обеспечения.
У меня есть все файлы проекта из предыдущей версии (v16), и я в настоящее время собираю v17.
Мы используем InstallShield 2015 Professional Edition (версия 22 | пакет обновления 2)
Эта проблема
У меня есть файлы Basic MSI Project, я изменил номер версии и внес изменения, необходимые для следующей версии нашего программного обеспечения - однако, когда я запускаю установщик, он говорит, что он уже установлен (даже если номер версии разные)
После изучения этой проблемы, есть многочисленные сообщения об этом, но я не могу найти однозначного ответа относительно того, какой из них должен быть изменен, "Код продукта" или "Код обновления", или оба кода, или ни коды, ни что-то еще, что я пропускаю.
Любая помощь будет принята с благодарностью.
1 ответ
Это будет зависеть от того, как вы разработали свое программное обеспечение. Можете ли вы запустить несколько версий бок о бок? Должна ли быть запущена только одна версия?
Ознакомьтесь с статьями Microsoft по Productcode и Upgradecode.
Код продукта должен быть изменен, если для обновления верно любое из следующего:
- Совместная установка как оригинальных, так и обновленных продуктов в одной системе должна быть возможной.
- Имя MSI-файла было изменено.
- Код компонента существующего компонента изменился.
- Компонент удаляется из существующей функции.
- Существующая функция стала дочерней по отношению к существующей функции.
- Существующая дочерняя функция была удалена из родительской функции.
Для кодов обновления приведены следующие примеры.
Следующие два сценария иллюстрируют использование кода UpgradeCode.
- Продукт A и продукт B поставлялись с одинаковыми ProductLanguage, ProductVersion и UpgradeCode. Продукт A и продукт B имеют разные коды продуктов. Поскольку продуктам был присвоен один и тот же код UpgradeCode, таблицу обновлений нельзя создать, чтобы отличить более старую версию продукта A от более старой версии продукта B. В этом случае вы не сможете установить обновленную версию продукта A, которая игнорирует продукт. Б. Поскольку это были разные продукты, каждому из них должен был быть присвоен свой код UpgradeCode.
- Английская и французская версии продукта A поставлялись с одинаковыми ProductVersion и UpgradeCode. И английская, и французская версии продукта A имеют разные ProductLanguages и ProductCodes. Несмотря на то, что версии на английском и французском языках имеют один и тот же код UpgradeCode, можно создать таблицу обновлений таким образом, чтобы только более старая версия на английском языке была обнаружена и обновлена, а более старая версия на французском языке проигнорирована. Версии продукта на разных языках могут использовать один и тот же код UpgradeCode.