2013-05-28 2 views
2

У меня есть два диалоговые WIX в моем проекте установкиКак выбрать диалог WIX, чтобы показать OnExit основываясь на состоянии

Окончательная форма, которая должна быть указана, когда программа установки завершается с «успехом» статус

<Dialog Id="FinishedForm"> 
    ... 
</Dialog> 

и страницу, чтобы показать несколько слайдов о нашем продукте.

<Dialog Id="IntroductionTourPage"> 
    ... 
    <Control Id="SkipTourButton" Type="PushButton"> 
     <Publish Event="NewDialog" Value="FinishedForm">1</Publish> 
    </Control> 
    ... 
</Dialog> 

Я хочу IntroductionTourPage только будет показан после установки продукта (не обновлены или удалены), но я не знаю, как сделать это. Я пробовал

<InstallUISequence> 
    <Show Dialog="FinishedForm" OnExit="success">Condition</Show> 
    <Show Dialog="IntroductionTourPage" OnExit="success">NOT Condition</Show> 
</InstallUISequence> 

но он недействителен в Wix, поэтому этот подход не удался. Затем я попробовал

<InstallUISequence> 
    <Show Dialog="FinishedForm" Sequence="1">Condition</Show> 
    <Show Dialog="IntroductionTourPage" Sequence="2">NOT Condition</Show> 
</InstallUISequence> 

это не сработало. Я пробовал тогда

<InstallUISequence> 
    <Show Dialog="FinishedForm" OnExit="success"/> 
    <Show Dialog="IntroductionTourPage" Before="FinishedForm">Condition</Show> 
</InstallUISequence> 

, но это не относится к Wix.

Теперь я хочу попробовать, как л:

<InstallUISequence> 
    <Custom Action="CA_ChooseAndShowDialogBasedOnCondition" OnExit="success"/> 
</InstallUISequence> 

, но я не могу найти ни одного примера, как показать Wix диалоги из CA.

Любые идеи?

Спасибо заранее, Андрей

+0

Я также думаю о реализации CA, который создает динамически UI (пример: http://blog.deploymentengineering.com/2008/07/dynamic-windows -installer-ui.html), но я не могу найти подробный учебник по этому методу – Andriy

+0

@Vinoth, ваш подход жизнеспособен, но в каждом диалоговом окне у меня много элементов управления, и некоторые из этих элементов управления уже используют условия <Условие Действие = "show/hide">, я не хочу, чтобы код стал полным беспорядком. – Andriy

ответ

1

У меня есть что-то другое решение. Попробуйте это, если найдете, что это подходит для вашего требования.

Добавить все элементы управления в вашем FinishedForm к IntroductionTourPage. Используйте IntroductionTourPage в качестве диалогового окна выхода из проекта. Отобразите элементы управления в диалоговом окне IntroductionTourPage, основанный на условии.

ВведениеТурПарт будет действовать как как FinishedForm, так и IntroductionTourPage в зависимости от состояния. Вы можете использовать диалог FinishedForm из IntroductionTourPage, если это необходимо.

Пример: управления Название в IntroductionTourPage

<Control Id="Title" Type="Text" X="188" Y="22" Width="330" Height="22" Transparent="yes" NoPrefix="yes" Text="Welcome to the IntroductionTourPage" > 
      <Condition Action="hide">Condition</Condition> 
    </Control> 
    <Control Id="FinishTitle" Type="Text" X="188" Y="15" Width="316" Height="22" Transparent="yes" NoPrefix="yes" Text="Completed the Sample Setup Wizard" Hidden="yes"> 
      <Condition Action="show">Condition</Condition> 
    </Control> 
Смежные вопросы