2016-09-20 3 views
1

Пожалуйста, внимательно прочитайте, как я объясню, что я пытаюсь сделать. У меня есть установщик wix, который вызывает пользовательские действия для проверки ввода пользователя. Я хочу, чтобы вызвать следующий диалог, если проверка прошла успешно и не двигаться, если проверка не удаласьWix - Пользовательское действие Код возврата - Обработка

  1. У меня есть настраиваемое действие
  2. Обычай действие проверяет имя пользователя и пароль
  3. Если проверка прошла успешно, настраиваемое действие устанавливает свойство ([CONNECTED] = 1) значение до 1
  4. Если проверка не удалась, она устанавливает значение свойства в пустую, а затем всплывает окно сообщения, в котором указано неверное значение
  5. Пользовательское действие (C#) выполняется в моем в следующей кнопке
  6. Пользовательское действие выполняется нормально, и оно появляется, когда происходит сбой . Вот проблема Если есть сбой, всплывающее окно создается, и мой установщик wix переходит в конец диалога (FINISH), чтобы дать мне возможность выйдите из установки. Или он иногда дает мне следующий диалог, хотя он не прошел. Вот код для выполнения моего действия. <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="[ButtonText_Next]"> <Publish Event="DoAction" Value="MyCustomAction">1</Publish> <Publish Event="NewDialog" Value="CustomizeDlg">CONNECTED= "1"</Publish> </Control>

Мой вопрос в том, почему он не остается в текущем диалоге, если есть ошибка означает, что он не возвращает 1. Она идет в диалоговом окне Готово после того как я нажмите кнопку ОК.

+0

Я пробовал редактировать код несколько раз. Вот мой код. ' <Опубликовать Событие = "DoAction" Value = "MyCustomAction"> 1 <Опубликовать событие = "NewDialog" Value = "CustomizeDlg"> CONNECTED = "1" ' – Dee

+0

в любое время он возвращает actionresult.failure он идет до конца диалог вместо из оставшегося в этом диалоговом окне – Dee

+0

Иногда у вас есть сбой из-за последовательности диалогов, это не ошибка пользовательского действия. Попробуйте генерировать сообщения журнала с помощью msiexec/i your_package.msi/L * vx your_package.log, чтобы найти более подробную информацию о вашей ошибке. – sumitani

ответ

1

Возвращаемые значения из пользовательских действий предназначены для использования установщиком Windows, а не для вас. Возврат ActionResult.Failure указывает Windows, что ваш ЦС потерпел неудачу так плохо, что установка должна завершиться. Если ваш ЦС работает нормально и не является фатальным для процесса установки, верните результат успеха. Используйте значения свойств для обозначения результатов пользователя.

По моему опыту, более обычным методом борьбы с этим типом диалога является использование нормальной последовательности из одного диалога в другой. Единственное различие заключается в том, что вы запускаете диалог с отключенной кнопкой «Далее» и включаете его, если ваша проверка пользователя преуспевает.

+0

У меня есть следующая кнопка, действующая на основе результата свойства. Спасибо за ответ, я принял его. – Dee

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