c # Setup Project - убедитесь, что .EXE запускается до MSI?

Я использую проект установки C #, который включает некоторое необходимое программное обеспечение. Эти предварительные требования, похоже, устанавливаются только EXE, а не MSI (и EXE, и MSI создаются при создании моего проекта установки).

Я не всегда могу поверить в то, что мои пользователи будут беспокоиться о запуске EXE, а не MSI, так есть ли способ заставить его? Возможно несколько вариантов:

  • Моему приложению требуется Sql CE 3.5 SP2 - есть ли способ, чтобы MSI установил его вместо того, чтобы он устанавливался только в EXE?

  • Есть ли способ заставить мой MSI обнаруживать, когда он запускается пользователем, а не запускается EXE?

  • Могу ли я заставить MSI запускать установщик EXE как часть процесса установки?


person bugfixr    schedule 11.06.2011    source источник
comment
Файл setup.exe нужен только для того, чтобы убедиться, что на целевой машине установлена ​​правильная версия MSI. В чем настоящая проблема?   -  person Hans Passant    schedule 12.06.2011
comment
Если пользователь запускает setup.msi, SQL CE не будет установлен. Если пользователь запускает setup.exe, будет установлен SQL CE. Я не могу запретить пользователю игнорировать EXE и запускать только MSI. Это проблема.   -  person bugfixr    schedule 12.06.2011


Ответы (1)


Это не поддерживается проектом установки Visual Studio. Однако инструменты разработки коммерческих установок предлагают несколько решений:

  • обрабатывать предварительные требования из пользовательского интерфейса установки MSI вместо использования EXE
  • вставьте MSI в EXE, чтобы у вас был только один установочный файл
  • настроить EXE, чтобы установить настраиваемое свойство MSI и создать условие запуска на основе этого свойства; таким образом MSI остановится, если свойство не было установлено EXE

Если вы хотите продолжить использование Visual Studio, решением будет создание условия запуска для Sql CE 3.5 SP2. Таким образом, установка остановится, если Sql CE 3.5 SP2 не установлен.

person cosmin    schedule 12.06.2011