我正在阅读别人写的WIX脚本.有些代码让我很困惑.
<Custom Action='UnLoadSchedulerPerfCounters' After='InstallInitialize'>
<![CDATA[(Installed) AND (!Scheduler = 3)]]>
</Custom>
<Custom Action='RollbackSchedulerPerfCounters' After='WriteRegistryValues'>
<![CDATA[(&Scheduler = 3)]]>
</Custom>
Run Code Online (Sandbox Code Playgroud)
那么,!Scheduler和之间的区别是&Scheduler什么?当属性前缀为&或时,是否有任何特殊含义!?
来自http://www.tramontana.co.hu/wix/lesson5.php#5.3:
在名称前面添加一些特殊字符将赋予它们额外的含义:
Run Code Online (Sandbox Code Playgroud)% environment variable (name is case insensitive) $ action state of component ? installed state of component & action state of feature ! installed state of feature最后四个可以返回以下整数值:
Run Code Online (Sandbox Code Playgroud)-1 no action to be taken 1 advertised (only for components) 2 not present 3 on the local computer 4 run from the source
这些是Windows Installer条件语法的运算符.有关完整列表,请参阅此MSI SDK文档:http: //msdn.microsoft.com/en-us/library/aa368012.aspx.