在WiX中使用CDATA检查端口值

时间:2014-12-18 14:35:41

标签: wix installer windows-installer cdata

我希望在我的WiX安装程序中验证端口号。使用下面的代码之一,我尝试检查数据库端口的值是否在1024和65535之间:

1. <Publish Event="SpawnDialog" Value="InvalidPortNumber"><![CDATA[(DATABASE_PORT < 1024 OR DATABASE_PORT > 65535)]]></Publish>
2. <Publish Event="SpawnDialog" Value="InvalidPortNumber"><![CDATA[(DATABASE_PORT < "1024" OR DATABASE_PORT > "65535")]]></Publish>

但是,如果用户写入的端口号小于1024,则它们都不会发布生成对话框。对于大于65535的值,一切都很好。

端口号设置为:

<Control Id="DatabasePortText" Type="MaskedEdit" X="20" Y="120" Width="50" Height="15" Property="DATABASE_PORT" Text="######"/>

如何解决此问题?

1 个答案:

答案 0 :(得分:1)

问题是你的属性被视为字符串,因此<>在它应该的方式上没有任何意义。

您有两种选择:

  • 使用Edit控件并将Integer属性设置为是:<Control Type="Edit" Integer="yes" .../>。这将确保将该属性视为整数。
  • 使用MaskedEdit,当您按下Next按钮时,将执行自定义操作,该操作可将字符串属性转换为整数属性。