wix自定义操作配置应用程序池

时间:2011-11-05 09:31:55

标签: iis wix custom-action

我正在使用帮助自定义操作为我的Web应用程序尝试更改应用程序池

    <InstallExecuteSequence>
    <Custom Action="ConfigureAppPools" Before="InstallFinalize">Application pool         configured</Custom>
  </InstallExecuteSequence>

  <!-- Snip -->                                          
    <CustomAction Id="ConfigureAppPools" Execute="deferred" Impersonate="no" Return="check" Directory="TARGETDIR" ExeCommand="[SystemFolder]inetsrv\appcmd set site /site.name:&quot;Default Web Site&quot;/[path='/MyWeb'].applicationPool:MyWeb"/>

但得到以下错误 LGHT0204:ICE03:格式字符串无效;表:CustomAction,Column:Target,Key(s):ConfigureAppPools

如何修复?

2 个答案:

答案 0 :(得分:4)

您应该转义ExeCommand属性中的方括号(path=...周围的方括号),否则MSI会认为它是必须格式化的属性。试试这个:

<CustomAction Id="ConfigureAppPools" Execute="deferred" Impersonate="no" Return="check" Directory="TARGETDIR" ExeCommand="[SystemFolder]inetsrv\appcmd set site /site.name:&quot;Default Web Site&quot; /[\[]path='/MyWeb'[\]].applicationPool:MyWeb"/>

您要逃离的每个方括号必须以反斜杠为前缀,并将包装物放入另一对方括号中。

答案 1 :(得分:0)

文本Application pool configured不是有效条件。

请参阅Conditional Statement Syntax或一些示例here