2010-11-25 80 views
0
我有下一个问题

,我定义了一个新的属性:INSTALLDIR上静默安装

<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

我会怀疑INSTALLDIR属性是根据用户的输入在UI序列中的某个地方设置的,该地址在静默安装中不运行。如果是这种情况,则可能需要将INSTALLDIR的值作为msiexec.exe的参数传递。

+0

谢谢你的回答,你是对的。请看我的评论... – Hila 2010-11-25 12:30:23