Я хочу убедиться, что Crystal Reports Basic для Visual Studio 2008 установлен как условие для моего собственного установочного пакета.
Я нашел это в описании загрузчика для этого продукта (C: \ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ Bootstrapper \ Packages \ CrystalReports10_5 \ product.xml):
<InstallChecks>
<MsiProductCheck Property="CRVSInstalled" Product="{AA467959-A1D6-4F45-90CD-11DC57733F32}"/>
<MsiProductCheck Property="CRVSRunTimex86Installed" Product="{CE26F10F-C80F-4377-908B-1B7882AE2CE3}"/>
<MsiProductCheck Property="CRVSRunTimex64Installed" Product="{2BFA9B05-7418-4EDE-A6FC-620427BAAAA3}. "/>
</InstallChecks>
Пытаясь имитировать это поведение в WiX, я сделал следующее:
<Property Id="CRVSINSTALLED">
<ComponentSearch Id="CRVSInstalledSearch" Guid="{AA467959-A1D6-4F45-90CD-11DC57733F32}" />
</Property>
<Property Id="CRVSRUNTIMEX86INSTALLED">
<ComponentSearch Id="CRVSRunTimex86InstalledSearch" Guid="{CE26F10F-C80F-4377-908B-1B7882AE2CE3}" />
</Property>
<Property Id="CRVSRUNTIMEX64INSTALLED">
<ComponentSearch Id="CRVSRunTimex64InstalledSearch" Guid="{2BFA9B05-7418-4EDE-A6FC-620427BAAAA3}" />
</Property>
<Condition Message="!(loc.CrystalReportsRequired)">Installed OR CRVSINSTALLED OR CRVSRUNTIMEX86INSTALLED OR CRVSRUNTIMEX64INSTALLED</Condition>
Но, похоже, ComponentSearch
ищет компоненты пакета (файлы, каталоги), которые имеют свои собственные идентификаторы, а не ищет сам пакет.
Так как я могу это сделать?