Можно ли определить состояние установки функции дочернего msi-пакета в комплекте?
У меня есть такой пакет как:
<Chain>
<PackageGroupRef Id="ChildPackage"/>
<PackageGroupRef Id="SecondPackage"/>
</Chain>
Что я пытаюсьчтобы достичь - это решить, должен ли я установить SecondPackage
на основе состояния функции внутри ChildPackage
.
. Я пробовал решение с ключом реестра, как показано ниже, но оно не удается.
<!-- Write RegistryKey within ChildPackage -->
<Feature Id="FeatureName" Title="FeatureName" Level="1" AllowAdvertise="no">
<RegistryKey Root="HKLM"
Key="Software\CompanyName\ProductName\FeatureName"
ForceCreateOnInstall="yes" ForceDeleteOnUninstall="no">
<RegistryValue Type="string" Name="Version" Value="$(var.VersionNumber)"/>
</RegistryKey>
</Feature>
<!-- Search the RegistryKey within Bundle -->
<util:RegistrySearch
Id='FeatureInstalled'
Variable="FeatureInstalled"
Result="exists"
Root="HKLM"
Key="SOFTWARE\CompanyName\ProductName\FeatureName\Version"/>
<MsiPackage
Id="SecondPackage"
SourceFile="SecondPackage.msi"
InstallCondition="FeatureInstalled">
</MsiPackage>
Из журнала я вижу, что переменная FeatureInstalled
была установлена пустой до установки ChildPackage, и после этого у нее никогда не было возможности выполнить повторную оценку, поэтому условие установки SecondPackage оценивается как False, поэтому она никогда не получитУстановлено.
Итак, первая часть моего вопроса: есть ли способ запланировать оценку RegistrySearch
после установки связанного пакета?
Если это невозможно, есть ли другое решение для получениясостояние этой функции в дочернем MSI-пакете?