2013-08-02 2 views
1

Я делаю некоторые проверки перед установкой с помощью пользовательского действия. Я хочу, чтобы установка не запускалась, если эти проверки не выполняются.Как остановить установку .MSI Использование специального действия wix

Есть ли способ сделать это изящно?

+0

Какие чеки вы делаете? – sttaq

ответ

4

Если ваши чеки не могут быть выполнены с использованием элемента Condition, то в вашем пользовательском действии вы должны вернуть ActionResult.Failure, если ваши чеки завершатся ошибкой или возвращаются ActionResult.Success, если чеки проходят.

Возврат сбоя должен привести к тому, что ваша установка будет работать в режиме RollBack, и она не будет продвигаться дальше. Это будет работать, если для атрибута Return элемента CustomAction установлено значение check, которое является значением по умолчанию.

+0

Я попробую это позже, спасибо. На данный момент все, что я делал, вытесняло исключение и позволяло Windows обрабатывать его. Это не безопасно делать то, что я предполагаю? – RichardMc

+1

Если исключения не останавливают выполнение msi, это не будет безопасно. Это может также вызвать всплывающее диалоговое окно с сообщением об исключении во время установки. Однако возврат «Failure» гарантирует, что ваша установка будет откат и что было установлено до тех пор, пока эта точка не будет удалена. – sttaq

+0

Я бы также предложил посмотреть элементы 'Condition'. Вы можете использовать их для проверки таких вещей, как наличие определенного приложения или версий вашего программного обеспечения или стороннего программного обеспечения. – sttaq

Смежные вопросы