WIX 属性作为整数

3
我将尝试设置一个属性来配置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个回答

3
正如错误信息所述,<iis:WebSite>ConnectionTimeout属性的值需要整数类型。而nonNegativeInteger不是一个Formatted类型,它无法从方括号中提供的属性中提取值。

因此,除了提供硬编码的值外,我认为您在这里没有其他选择...

或者,您可以创建一个自定义操作,调用appcmd.exe,并在命令行中提供所需的超时值,在ConfitureIIs之后延迟调度此操作...但与收益相比,这些努力似乎过于繁琐...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接