WIX Toolset Как установить свойство
Кажется, это должно быть интуитивно понятно, но до сих пор это было совсем не так. Как мне просто установить свойство, которое я определил в моем product.wxs, когда впервые открывается мой пользовательский диалог?
Мое свойство называется "Порт", которое инициализируется как пустое. У меня есть другой с именем "df_Port", который я установил на "8080". (Они установлены в моем Product.wxs). Когда открывается мой Custom Dialog, я хочу установить "Port" в "df_Port". У меня также есть элемент управления "Редактировать" в диалоговом окне, для которого "Свойство" имеет значение "Порт". Таким образом, очевидно, что пользователь должен иметь возможность обновить порт, но если он нажимает кнопку "Назад", но в конечном итоге возвращается к этому диалоговому окну, значение элемента управления для редактирования по умолчанию должно вернуться к "8080".
Я пробовал SetProperty, но для него требуется свойство "До" или "После", и я понятия не имею об этом. Я также пытался создать CustomAction, но это тоже не сработало:
<CustomAction Id="caPort" Property="Port" Value="[df_Port]"/>
Элемент управления отображается пустым вместо "8080"
Я использую Wix 3.9 R2
1 ответ
Никто не ответил и не прокомментировал мой вопрос. Однако после долгих проб и ошибок я нашел решение. Я решил поставить это здесь на случай, если у кого-то еще возникнет такая же проблема.
1) Во-первых, я должен назвать свойства как все прописные буквы. Так что в моем product.wxs я заявляю:
<Property Id="DF_PORT" Value="8080" Secure="yes"/>
<Property Id="PORT" Secure="yes"/>
2) Затем я добавляю тег публикации и присоединяюсь к кнопке "Далее" диалогового окна, предшествующего моему диалоговому окну конфигурации:
<Publish Dialog="PrecedingDialogName" Control="Next" Property="PORT" Value="[DF_PORT]">1</Publish>
3) В моем настраиваемом диалоге я просто привязываю элемент управления Edit к свойству PORT:
<Control Id="Port" Type="Edit" X="130" Y="88" Width="60" Height="16" Property="PORT" Text="{\WixUI_Font_Normal}" Integer="yes" RightAligned="yes" />
Элемент управления отобразит значение по умолчанию. Если я отредактирую значение, но затем нажму кнопку "Назад", шаг 2 перезагрузит значение по умолчанию вместо того, чтобы помнить, что набрал пользователь.
Проработав пару недель с WIX Toolset, я могу честно сказать, что это одна из худших и не интуитивно понятных разработок, которые я когда-либо видел!