【问题标题】:WIX Property as IntegerWIX 属性为整数
【发布时间】:2012-11-30 05:12:26
【问题描述】:

我正在尝试设置一个属性以在设置期间创建的新网站上配置 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。

提前致谢

【问题讨论】:

    标签: wix wix3.6


    【解决方案1】:

    正如错误消息所述,&lt;iis:WebSite&gt;ConnectionTimeout 属性的值需要整数值。 nonNegativeInteger 不是 Formatted 类型,它知道如何从方括号中提供的属性中提取值。

    因此,我认为您除了提供硬编码值之外别无他法......

    或者,您可以创建一个调用 appcmd.exe 的自定义操作,并在命令行中提供所需的超时值,并将此操作推迟到 ConfitureIIs...好处...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-15
      相关资源
      最近更新 更多