共享属性:“错误LGHT0094:未解析的符号引用”
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了共享属性:“错误LGHT0094:未解析的符号引用”相关的知识,希望对你有一定的参考价值。
我试图在几个产品之间共享一个属性,默认情况下没有设置。除了一个产品,我想将其设置为一个值。
所以在shared.wxi中:
<Include>
<Property Id="MYPROP" Secure="yes"></Property>
</Include>
在product.wxs中:
<Wix>
<Product>
<?include ..sharedshared.wxi?>
<SetProperty Id="MYPROP" Value="1" After="InstallInitialize"/>
</Product>
</Wix>
但我们的构建系统抱怨:
error LGHT0094 : Unresolved reference to symbol 'WixAction:InstallUISequence/InstallInitialize' in section 'Product:{583365A4-93C2-434A-BCD8-8A1035DF2AC7}'
我甚至不确定After="InstallInitialize"
(或Before = ...)是否是正确的地方,我只想在包含之后但在考虑其他任何内容之前设置此产品的属性。此外,我对整个WIX系统几乎一无所知,我只是想在知识渊博的同事休假时快速解决问题。
更新 - 现在我尝试了这个而不是SetProperty
,但仍然得到相同的错误:
<CustomAction Id="CA_SETMYPROP" Property="MYPROP" Value="1" />
<InstallUISequence>
<Custom Action="CA_SETMYPROP" Before="InstallInitialize" />
</InstallUISequence>
更新2 - 现在我用InstallUISequence
取代了InstallExecuteSequence
,它做了我想要的。请参阅Rob Mensching的答案以获得解释和替代解决方案。
<CustomAction Id="CA_SETMYPROP" Property="MYPROP" Value="1" />
<InstallExecuteSequence>
<Custom Action="CA_SETMYPROP" Before="InstallInitialize" />
</InstallExecuteSequence>
当我第一次遇到它时(最近),这个问题让我陷入了一个循环。错误消息是正确的,但可能会更有帮助*。
根本问题是在InstallInitialize
中不存在InstallUISequence
。默认情况下,SetProperty
使用both
作为Sequence
属性。这意味着在InstallInitialize
和InstallExecuteSequence
中InstallUISequence
行动之前/之后安排了set属性。由于在InstallInitialize
中不存在InstallUISequence
,您将收到错误:
Unresolved reference to symbol 'WixAction:InstallUISequence/InstallInitialize'
修复是使用Sequence='execute'
只安排InstallExecuteSequence
居住的InstallInitialize
中的属性设置。或者,您可以选择不同的操作来安排前/后。
使用SetProperty
会像这样:
<SetProperty Id="MYPROP" Value="1" After="InstallInitialize" Sequence="execute" />
*改进错误信息在我的雷达上。
以上是关于共享属性:“错误LGHT0094:未解析的符号引用”的主要内容,如果未能解决你的问题,请参考以下文章