我遇到了下一个问题,我定义了一个新属性:
<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>
在常规安装中,属性已正确分配,条件正常。
但是在静默安装时,组件始终安装,如果条件应为false,则为event。
在详细日志中,似乎两个属性都是正确的......
注释:
经过进一步调查,并根据下一个链接:
msdn.microsoft.com/en-us/library/aa368007%28VS.85%29.aspx
我了解INSTALLDIR仅在CostFinialize操作后进行初始化,并且条件字段在该操作期间启用或禁用,这意味着该属性在该阶段为空...
您对如何初步初始化该属性有任何想法吗?
答案 0 :(得分:0)
我怀疑INSTALLDIR属性是根据UI序列中某处的用户输入设置的,该序列不在静默安装中运行。如果是这种情况,您可能希望将INSTALLDIR的值作为msiexec.exe的参数传递。