First, I'm not intimately familiar with what you're doing, but have you tried 
making use of the standard IIS custom actions to do what you want to do? See 
wix.chm for the list of elements in the IIS extension - one of them may be able 
to help you do this, and then you'll get install, uninstall, rollback, etc. all 
well-tested, and for free.

If it isn't, could you file a feature request or bug outlining the scenario you 
wish IIS Extension supported? This sort of functionality will be better tested 
and more reliable if WiX supports it natively, so you don't have to do things 
like this yourself.

Anyway, to answer your original question, try escaping them like this:

        "[\[]" (without quotes) for the open square bracket.
        "[\]]" (without quotes) for the ending square bracket.

I believe this is the standard MSI way to escape these characters.

Thanks,
Mike Carlson

-----Original Message-----
From: phillip_sid...@dellteam.com [mailto:phillip_sid...@dellteam.com] 
Sent: Wednesday, September 30, 2009 1:22 PM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Square Brackets in a Custom Action

I have a custom action that executes appcmd (the IIS 7 tool for metabase
modifications) and it needs to contain '[' and ']' in the command line.

 

The following custom action fails to compile with the square brackets:

 

    <CustomAction Id="SetDefaultAppPoolTo32Bit"

        Directory="TARGETDIR"

        ExeCommand="[WindowsFolder]\system32\inetsrv\appcmd.exe set
config -section:system.applicationHost/applicationPools
/[name=&apos;DefaultAppPool&apos;].enable32BitAppOnWin64:&quot;True&quot
; /commit:apphost"

        Return="ignore"

        Execute="commit"

        HideTarget="no"

        Impersonate="no" />

 

If I remove the square brackets it executes but performs the wrong
function. 

 

I tried XML escaping them as follows:

 

    <CustomAction Id="SetDefaultAppPoolTo32Bit"

        Directory="TARGETDIR"

        ExeCommand="[WindowsFolder]\system32\inetsrv\appcmd.exe set
config -section:system.applicationHost/applicationPools
/&#x5B;name=&apos;DefaultAppPool&apos;&#x5D;.enable32BitAppOnWin64:&quot
;True&quot; /commit:apphost"

        Return="ignore"

        Execute="commit"

        HideTarget="no"

        Impersonate="no" />

 

Any other ideas? (besides shipping a separate .bat file that performs
the function).

 

Thanks.

 

-          Phil

 

------------------------------------------------------------------------------
Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;
http://p.sf.net/sfu/devconf
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


------------------------------------------------------------------------------
Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;
http://p.sf.net/sfu/devconf
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to