Dav*_*d P 3 .net wix visual-studio-2012
这看起来应该是直观的,但到目前为止它已经不过了.当我的自定义对话框首次打开时,如何设置我在product.wxs中定义的属性?
我的属性称为"端口",初始化为空白.我有另一个名为"df_Port",我设置为"8080".(这些在我的Product.wxs中设置)当我的自定义对话框打开时,我想将"端口"设置为"df_Port".我还在对话框上有一个Edit控件,其"Property"设置设置为"Port".显然用户应该能够更新端口,但是如果他们点击"返回"按钮,但最终回到此对话框,则编辑控件的默认值应该返回到"8080"
我已经尝试过SetProperty,但它需要一个Before或After属性,我对此没有任何线索.我也尝试创建一个CustomAction,但这也没有用:
<CustomAction Id="caPort" Property="Port" Value="[df_Port]"/>
Run Code Online (Sandbox Code Playgroud)
控件显示为空白,而不是"8080"
我使用的是Wix 3.9 R2
没有人回答或评论我的问题.然而,经过多次试验和错误,我找到了解决方案.我想我会把它放在这里以防其他人遇到同样的问题.
1)首先,我必须将属性命名为全部大写.所以在我的product.wxs中我声明:
<Property Id="DF_PORT" Value="8080" Secure="yes"/>
<Property Id="PORT" Secure="yes"/>
Run Code Online (Sandbox Code Playgroud)
2)然后我添加一个发布标记并附加到我的自定义配置对话框之前的对话框的下一步按钮:
<Publish Dialog="PrecedingDialogName" Control="Next" Property="PORT" Value="[DF_PORT]">1</Publish>
Run Code Online (Sandbox Code Playgroud)
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" />
Run Code Online (Sandbox Code Playgroud)
控件将显示默认值.如果我编辑了值,但点击了"返回"按钮,则步骤2将重新加载默认值,而不是记住用户键入的内容.
在使用WIX Toolset几周之后,我可以诚实地说这是我见过的最糟糕,最不直观的开发项目之一!
归档时间: |
|
查看次数: |
2024 次 |
最近记录: |