Справочная информация: я пишу установщик с Wix Toolset. В качестве шаблона пользовательского интерфейса я использую WixUI_InstallDir, в который я сделал некоторые пользовательские изменения (например, пользовательские диалоги и т. Д. c.).
Теперь я пытаюсь добавить несколько других шагов в установщик. Однако эти шаги будут выглядеть почти одинаково: заголовок, описание, несколько текстовых полей ввода (одинаковые для каждого шага) и кнопки «Вперед / Назад». Примерно так:
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<UI>
<Dialog Id="SomeDialogWithInput" Width="370" Height="270" Title="!(loc.Dlg_Title)">
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="!(loc.DlgBannerBitmap)" />
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="2" />
<Control Id="Description" Type="Text" X="25" Y="23" Width="340" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.DlgDescription)" />
<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.Dlg_Title)" />
<!-- Some editable property (will be multiple of them) -->
<Control Id="SomePropertyLabel" Type="Text" X="15" Y="60" Width="140" Height="18" Transparent="yes" NoPrefix="yes" Text="Some Property" />
<Control Id="SomePropertyEdit" Type="Edit" X="160" Y="57" Width="180" Height="15" Property="MY_PROPERTY" Text="{80}" Indirect="no" />
<!-- Dialog buttons -->
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)" />
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)"/>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
</Dialog>
</UI>
</Fragment>
</Wix>
Мне бы хотелось иметь 3 одинаковых шага с одинаковыми входными данными (для получения учетных данных от пользователя), которые отличались бы только заголовком, описанием и набором свойств, для которых значения будет сохранен (например, STEP_1_MY_PROPERTY, STEP_2_MY_PROPERTY, STEP_3_MY_PROPERTY).
Мне интересно ... Есть ли способ создать диалоговый шаблон, который затем может быть использован несколько раз в последовательности пользовательского интерфейса и каким-то образом передать свойство имена, заголовок и описание через тег Publi sh? Или создание 3-х файлов wxs с похожими диалогами - единственный (или самый простой) способ?