转换自定义操作条件时出错
Error Converting Custom Action Condition
我有一个在 Installshield 2009 中运行的自定义操作,但我不确定如何移植到 WiX。根据 this page,语法在我看来是正确的,但是 VS2015 和 WiX 3.10.2 非常不满意...通知我 Entity SA' is not defined in the Not &SA=3
部分。
我尝试用引号将条件的 RHS 中的值括起来,但无济于事。我之前确实有一个 <Feature Id="SA" ...
定义(在我的自定义操作之后,认为在 wxs 文件中向上移动它会有所帮助,但没有)。
<InstallExecuteSequence>
<Custom Action="CA_StopClientService" After="StopServices" >((REMOVE="ALL") And (!SA=3)) Or ((Not &SA=3) And (!SA=3))</Custom>
我在这里错过了什么?
明白了,我想。两种解决方案:
<![CDATA[((REMOVE="ALL") And (!SA=3)) Or ((Not &SA=3) And (!SA=3))]]>
或
((REMOVE="ALL") And (!SA=3)) Or ((Not &SA=3) And (!SA=3))
第一个可能更简洁一些,因为您可以直接编写代码。第二个只是将 &
替换为 &
。当我用 dark.exe 反编译 msi 时,它生成的代码遵循第二种形式,这是我最终使用的。我的问题源于在复制 installexecutesequence 时实际上从 installshield 复制了条件。
我有一个在 Installshield 2009 中运行的自定义操作,但我不确定如何移植到 WiX。根据 this page,语法在我看来是正确的,但是 VS2015 和 WiX 3.10.2 非常不满意...通知我 Entity SA' is not defined in the Not &SA=3
部分。
我尝试用引号将条件的 RHS 中的值括起来,但无济于事。我之前确实有一个 <Feature Id="SA" ...
定义(在我的自定义操作之后,认为在 wxs 文件中向上移动它会有所帮助,但没有)。
<InstallExecuteSequence>
<Custom Action="CA_StopClientService" After="StopServices" >((REMOVE="ALL") And (!SA=3)) Or ((Not &SA=3) And (!SA=3))</Custom>
我在这里错过了什么?
明白了,我想。两种解决方案:
<![CDATA[((REMOVE="ALL") And (!SA=3)) Or ((Not &SA=3) And (!SA=3))]]>
或
((REMOVE="ALL") And (!SA=3)) Or ((Not &SA=3) And (!SA=3))
第一个可能更简洁一些,因为您可以直接编写代码。第二个只是将 &
替换为 &
。当我用 dark.exe 反编译 msi 时,它生成的代码遵循第二种形式,这是我最终使用的。我的问题源于在复制 installexecutesequence 时实际上从 installshield 复制了条件。