контекст

В настоящее время у меня есть задача создания следующей версии нашего установщика программного обеспечения.

У меня есть все файлы проекта из предыдущей версии (v16), и я в настоящее время собираю v17.

Мы используем InstallShield 2015 Professional Edition (версия 22 | пакет обновления 2)

Эта проблема

У меня есть файлы Basic MSI Project, я изменил номер версии и внес изменения, необходимые для следующей версии нашего программного обеспечения - однако, когда я запускаю установщик, он говорит, что он уже установлен (даже если номер версии разные)

После изучения этой проблемы, есть многочисленные сообщения об этом, но я не могу найти однозначный ответ, относительно которого следует изменить "Код продукта" или "Код обновления" или оба кода или ни коды, ни что-то еще, что я пропускаю.

Любая помощь будет принята с благодарностью.

1 ответ1

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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .