установочный проект c # — убедитесь.EXE запускается до MSI?

#c#-4.0 #setup-project

#c #-4.0 #установка-проект

Вопрос:

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

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

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

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

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

Комментарии:

1. The setup.exe это делается только для того, чтобы убедиться, что на целевой машине установлена правильная версия MSI. В чем реальная проблема?

2. Если пользователь запустит setup.msi, SQL CE не будет установлен. Если пользователь запускает setup.exe , затем будет установлен SQL CE. Я не могу запретить пользователю игнорировать EXE и запускать только MSI. В этом проблема.

Ответ №1:

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

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

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