0

我遇到了下一个问题,我定义了一个新属性:

<Property Id="TEMP_DIR" Secure="yes" >
    <RegistrySearch Id="TEMP_DIR" Root="HKLM" Key="SOFTWARE\$(Company)" Name="InstallDir" Type="directory"></RegistrySearch>
</Property>

然后我定义了一个新组件:

<Component Id="PerformAction" Guid="E2E4E3E5-FBEC-4051-B47B-9347B78105C2">
   <Condition><![CDATA[TEMP_DIR<>INSTALLDIR]]></Condition>
       …
</Component>

定期安装时,该属性已正确分配,并且条件正常。

但是在静默安装时,组件总是被安装,如果条件应该为假的话。

在详细日志中,这两个属性似乎都是正确的……</p>

评论

经过进一步调查,并根据下一个链接:

msdn.microsoft.com/en-us/library/aa368007%28VS.85%29.aspx

我知道 INSTALLDIR 仅在 CostFinialize 操作之后才被初始化,并且在该操作期间启用或禁用条件字段,这意味着该属性在该阶段为空......

您对如何更早地初始化属性有任何想法吗?

4

1 回答 1

0

我怀疑 INSTALLDIR 属性是根据用户在 UI 序列中某处的输入设置的,它不会在静默安装中运行。如果是这种情况,您可能希望将 INSTALLDIR 的值作为 msiexec.exe 的参数传递。

于 2010-11-25T09:52:09.433 回答