2010-11-25 127 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