Подтвердить что ты не робот

Как получить InstallShield LE для автоматической установки существующей установки?

Возможно ли это?

Все, что я вижу в поиске, это в основном то, что мне нужно использовать сторонние инструменты (например, Orca), чтобы получить GUID от моих существующих MSI и настроить InstallShield с ними, чтобы удалить существующую версию. Я пробовал один или два из этих наборов инструкций, но до сих пор ничего не работало. Наверное, потому что я делаю что-то неправильно, но, похоже, я прыгаю через множество обручей, чтобы сделать что-то, что, по моему мнению, должно быть относительно прямым. Разве эта проблема не была решена раньше?

Верхний результат в google указывает на этот ответ:

  • откройте свой старый MSI с помощью Orca и получите его таблицу UpgradeCode из таблицы свойств
  • в проекте InstallShield LE перейдите к разделу "Общая информация" в браузере решений
  • убедитесь, что поле "Обновить код" установлено на ваш старый файл обновления MSI

Означает ли это, что я должен открыть свой "старый MSI с Orca и получить его UpgradeCode" каждый раз, когда захочу развернуть новую версию?

Это звучит немного хаки, и, конечно же, я не хочу, чтобы каждый раз, когда я развертываю новую версию. Есть ли способ автоматизировать это? Является ли эта функциональность доступной в более сложных версиях InstallShield (в виду, что я на LE - я при необходимости обновлю)

4b9b3361

Ответ 1

InstallShield LE, как и проект установки до него, позволяет установить новую версию продукта, которая заменит ранее установленную версию. Что касается технически удаления старого продукта, или обновление на месте кажется мало значимым.

Ключ находится в разнице между Код продукта и Обновить код:

  • Код продукта:. Поскольку этот код однозначно идентифицирует ваш продукт, изменение кода продукта после того, как вы уже распространили выпуск, не рекомендуется.

  • Код обновления: Код обновления, хранящийся в свойстве UpgradeCode, должен оставаться неизменным для всех версий продукта.

(Этот текст находится непосредственно из справочной библиотеки InstallShield LE.)

Не совсем понятно, как использовать эти коды для развертывания продуктов и обновлений версий одного и того же продукта.

InstallShield LE General Information

В тексте справки звучит так, как будто вы никогда не должны менять код продукта. Это не тот случай. Вероятно, должно быть написано более четко: "Поскольку этот код однозначно идентифицирует ваш продукт version, изменение кода продукта после того, как вы уже распространили конкретную версию, не рекомендуется".... или что-то в этом роде.

В основном вы должны изменять код продукта при создании новой версии для выпуска. Оставьте код обновления только! Чтобы изменить Код продукта, нажмите кнопку {..} справа от кода. InstallShield LE создаст новый код.

Моя стандартная процедура заключается в изменении версий для моих проектов, создании нового кода продукта и создании проекта установки InstallShield.

При установке продукта на машине с уже установленной ранее версией проект установки обновит его и оставит только одну версию (последнюю) программы, установленную на целевой машине.

Ответ 2

Насколько я понимаю, ответ YJelton верен, но если вы хотите, чтобы старый продукт был удален, вы должны добавить элемент MajorUpgrade в таблицу Upgrade - если вы сохраните код обновления одинаковым (как было рекомендовано ) вы можете выбрать опцию "Продукты, разделяющие мой код обновления", а для версии продукта вы можете выбрать "Любая более ранняя версия".

Таким образом, если код обновления совпадает с вашим старым продуктом, а ваш новый продукт имеет более поздний номер версии, старый продукт будет удален.

Если вы хотите изменить код обновления, вы можете добавить элемент MajorUpgrade, который имеет параметр "Продукты, имеющие другой код обновления". Затем вставьте старый код обновления.

Ответ 3

Перейдите к "пути обновления" и установите минимальную версию в пустую, max ver. к текущему. включить max/min в yes и установить все идентификаторы кода для одного указателя.