2011-11-05 91 views
0

我试图改变应用程序池,我的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,列:目标,键:ConfigureAppPools

如何解决?

回答

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"/> 

你想逃避每个方括号必须用反斜杠为前缀,并包装成另一组方括号。