代码之家  ›  专栏  ›  技术社区  ›  Morgan Cheng

“&”和“!”的意思是什么?在属性名称之前?

wix
  •  5
  • Morgan Cheng  · 技术社区  · 16 年前

    我在读别人写的wix脚本。有些代码真的让我困惑。

    <Custom Action='UnLoadSchedulerPerfCounters' After='InstallInitialize'>
        <![CDATA[(Installed) AND (!Scheduler = 3)]]>
    </Custom>
    <Custom Action='RollbackSchedulerPerfCounters' After='WriteRegistryValues'>
            <![CDATA[(&Scheduler = 3)]]>
    </Custom>
    

    那么,两者的区别是什么呢 !Scheduler &Scheduler ? 当属性前缀为 & ! ?

    2 回复  |  直到 6 年前
        1
  •  7
  •   xsl Fredrik Hedblad    16 年前

    http://www.tramontana.co.hu/wix/lesson5.php#5.3 :

    准备一些特殊字符 名字会给他们额外的 含义:

    %     environment variable (name is case insensitive)
    $     action state of component
    ?     installed state of component
    &     action state of feature
    !     installed state of feature
    

    最后四个可以返回以下内容 整数值:

    -1   no action to be taken
    1    advertised (only for components)
    2    not present
    3    on the local computer
    4    run from the source
    
        2
  •  5
  •   Rob Mensching    16 年前

    这些是Windows Installer条件语法上的运算符。有关完整列表,请参阅此msi-sdk文档: http://msdn.microsoft.com/en-us/library/aa368012.aspx .