0

我有一个在 Installshield 2009 中工作的自定义操作,我不确定如何移植到 WiX。根据此页面,语法对我来说是正确的,但是 VS2015 和 WiX 3.10.2 非常不满意......通知我实体 SA' 未在该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>

我在这里想念什么?

4

1 回答 1

0

明白了,我想。解决它的两种选择:

<![CDATA[((REMOVE="ALL") And (!SA=3)) Or ((Not &SA=3) And (!SA=3))]]>

或者

((REMOVE="ALL") And (!SA=3)) Or ((Not &amp;SA=3) And (!SA=3))

第一个可能更简洁一些,你可以只写代码。第二个只是用&替换&amp;。当我使用 dark.exe 反编译 msi 时,它生成的代码遵循第二种形式,这也是我最终使用的。我的问题源于在复制 installexecutesequence 时实际上从 installshield 中复制了条件。

于 2016-03-15T17:33:35.400 回答