Я попробовал решение Кшиштофа (см. Выше) - но на некоторых машинах при использовании этого подхода неправильно определялось, когда у не установлен Sql Express.
Возможно, это вызвано неправильной обработкой значения реестра REG_MULTI_SZ InstalledInstances?
Поскольку я проверял, нужно ли мне останавливать / перезапускать службу Sql Server Express в установщике, я решил просто проверить это вместо этого - так что вот мой вариант, где я просто проверяю службу вместо:
<Property Id="SQLEXPRESSINSTALLED" >
<RegistrySearch Id="IsSqlExpressServiceInstalled" Root="HKLM" Key="SYSTEM\CurrentControlSet\services\MSSQL$SQLEXPRESS" Name="Description" Type="raw" Win64="no"/>
</Property>
<Condition Message="Express Not Installed">SQLEXPRESSINSTALLED</Condition>
<Condition Message="Express Installed">NOT SQLEXPRESSINSTALLED</Condition>
Немного хак, но, похоже, работает достаточно хорошо для наших клиентов (они использовали условия внутри компонентов, а не пример условий запуска, показанный выше)