У меня следующая проблема, я определяю новое свойство:
<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>
При обычной установке свойство назначается правильно, и условие работает нормально.
Но при автоматической установке компонент всегда устанавливается, если условие должно быть ложным.
В подробном журнале кажется, что оба свойства верны ...
Комментарий
После дальнейшего расследования и по следующей ссылке:
msdn.microsoft.com / ru-ru / library / aa368007% 28VS.85% 29.aspx
Я понял, что INSTALLDIR инициализируется только после действия CostFinialize, и поля условия включают или отключают во время этого действия, что означает, что свойство на этом этапе пусто ...
Есть ли у вас какие-либо идеи о том, как инициализировать свойство раньше?