2009-06-27 6 views
5

Моя компания разрабатывает приложение, которое имеет зависимость от другого нашего приложения. В этом втором приложении уже установлен установщик Inno Setup.Запустите еще один установщик в установке Inno Setup

Поэтому я думаю, что хотел бы связать установщик второго приложения внутри установщика Inno Setup для первого приложения. Но я не уверен, как это сделать. Кто-нибудь знает «правильный путь» для этого?

Я нашел это: Inno Setup Knowledge Base—HOWTO: Install .MSI files. Я предполагаю, что этот метод можно использовать для вложенного установщика Inno Setup. Но у меня есть пара вопросов о мелких деталях:

  1. Как я могу это сделать, если первое приложение удалено, второе также удалено?
  2. Это разумная вещь (автоматически удалить второе приложение), или я должен оставить ее пользователю, чтобы сделать это вручную?
  3. Если пользователь пытается удалить второе приложение во время первого удаления, должен ли я как-то обнаружить это и дать предупреждение? Как я мог это сделать?

ответ

2

Для уровня функциональности деинсталлятора, о котором вы говорите, я предлагаю вам ознакомиться с скриптами pascal в Inno Setup (если вы еще этого не сделали). Он предлагает невероятную настройку, но имеет оговорку о том, чтобы сделать ваши проекты намного более сложными.

Чтобы ответить на ваш третий вопрос первый:

Да, вы должны сделать это. Чтобы сделать это правильно, вам нужно добавить эту функцию к деинсталляции второго приложения (то есть того, на которое зависит ваше приложение). См. Uninstall event functions в справке Inno Setup. Вам нужно проверить этот деинсталлятор, если ваше приложение установлено (например, проверяет, существует ли HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\SecondAppName), и в этом случае вывести дополнительное предупреждение.

Что касается вашего второго вопроса:

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

И, наконец, ваш первый вопрос:

Вы должны определить имя (полный путь) другого приложения в деинсталлятор ехе. Вы можете получить его из раздела реестра HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\SecondAppName\UninstallString. Для его выполнения из сценария в разделе [CODE] см. Exec в справке Inno Setup.

+1

Поделитесь некоторым кодом! – tmighty