WIX属性为整数

时间:2012-11-30 05:12:27

标签: wix wix3.6

我正在尝试设置一个属性来配置在安装过程中创建的新网站上的IIS:Website ConnectionTimeout值。

但是我无法,因为ConnectionTimeout的值必须是整数,而不是字符串。

在我的product.wxs中,我有以下内容:

<Control Id="IisConnectionTimeoutLabel" Type="Text" X="45" Y="164" Width="100" Height="15" TabSkip="no" Text="Connection Timeout (sec):" />
<Control Id="IisConnectionTimeoutEdit" Type="Edit" X="45" Y="176" Width="220" Height="18" Property="IIS_CONNECTIONTIMEOUT" Text="{80}" Integer="yes"  />

在我的IisConfiguration.wxs中,我有以下内容:

<Property Id="IIS_CONNECTIONTIMEOUT" Value="300" />
<iis:WebSite Id="EersWebsite" Description="[IIS_WEBSITENAME]" ConfigureIfExists="yes" Directory="WEBINSTALLDIR" DirProperties="EersWebsiteDirProperties" ConnectionTimeout="[IIS_CONNECTIONTIMEOUT]">

当我构建项目时,我得到以下内容:

  

'ConnectionTimeout'属性无效 - 值   '[IIS_CONNECTIONTIMEOUT]'根据其数据类型无效   'http://www.w3.org/2001/XMLSchema:nonNegativeInteger' - 字符串   '[IIS_CONNECTIONTIMEOUT]'不是有效的整数值。

     

iis:WebSite / @ ConnectionTimeout属性的值,   '[IIS_CONNECTIONTIMEOUT]'不是合法的整数值。法律   整数值从-2,147,483,648到2,147,483,647。

提前致谢

1 个答案:

答案 0 :(得分:3)

如错误消息所述,<iis:WebSite>的{​​{1}}属性的值需要整数值。 ConnectionTimeout不是Formatted类型,它知道如何从方括号中提供的属性中提取值。

因此,除了提供硬编码值之外,我认为你没有办法......

或者,您可以创建一个自定义操作,该操作会调用nonNegativeInteger,并在命令行中提供所需的超时值,并在appcmd.exe之后安排此操作延迟...但是这些工作似乎比利益大得多......