2016-04-14 87 views
1

我试图实现下一个场景: “欢迎对话框” - >“服务名称的对话框” - >“安装路径对话框”WIX安装程序 - 变量传递到下一个窗口

服务名称对话框是一个自定义一个。用户应该输入服务的名称,然后按'Next'按钮 - 在'安装路径对话框'出现默认路径,如“..... \ inserted_value_on_previous_window”。

在“服务名称的对话框”我有编辑控件来实现,如:

<Control Id="ServiceValueEdit" Type="Edit" X="15" Y="60" Width="200" Height="15" Property="WIXUI_SELECTEDSERVICENAME" Indirect="yes" /> 

所以它应该设置WIXUI_SELECTEDSERVICENAME属性。 对于在“安装路径对话框”设置默认安装路径,我使用如下代码:

<Property Id="WIXUI_SELECTEDSERVICENAME" Value="SELECTEDSERVICENAME"></Property> 

<Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR"></Property> 

<SetDirectory Id="INSTALLDIR" Value="[DEFIISFOLDER]\[WIXUI_SELECTEDSERVICENAME]" Sequence="both"></SetDirectory> 

但不幸的是,当我们去“SERVIC名对话”,并设置任何价值 - 它不会反映在下一屏幕。下一个窗口将会有默认值SELECTEDSERVICENAME。我认为它在编译时只设置一个,并且在运行时不会更新。

任何人都可以帮忙搞清楚如何从一个窗口设置这个值并将其传递给下一个窗口? 谢谢。

要在这里要明确是几截屏: Service name dialog

所以我想要做的就是让这个字符串下面的对话框包含“名称”(在图片上abowe如图所示),而不是“SELECTEDSERVICENAME '如下所列。

enter image description here

+0

使用Value =“[DEFIISFOLDER] \ [SELECTEDSERVICENAME]”而不是您使用的内容.WIXUI_SELECTEDSERVICENAME是间接属性。 –

+0

谢谢您关于间接财产的提示! – Oleksii

回答

1

您的安装初始设置期间设置的INSTALLDIR至[DEFIISFOLDER] [WIXUI_SELECTEDSERVICENAME]的值。这意味着您在设置INSTALLDIR属性时使用WIXUI_SELECTEDSERVICENAME的初始值。

当您切换将更新installdir的UI页面时,您需要发布事件。

我觉得类似于:

<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)" /> 
    <Publish Property="INSTALLDIR" Value="[DEFIISFOLDER]\[WIXUI_SELECTEDSERVICENAME]">1</Publish> 
</Control> 

将更新为新WIXUI_SELECTEDSERVICENAME值INSTALLDIR属性。

+1

非常感谢Brian给你的提示!解决方案与您所说的完全相同:) – Oleksii