ho provato la soluzione di Krzysztof (sopra) - ma su alcune macchine quando si utilizza questo approccio non è stato rilevato correttamente quando hanno fatto non avere installato Sql Express.
Sembra essere causato da una cattiva gestione del valore di registro REG_MULTI_SZ InstalledInstances?
Mentre stavo controllando per vedere se avevo bisogno di arrestare/riavviare il servizio Sql Server Express nel programma di installazione, ho deciso di controllare invece quello - quindi ecco la mia alternativa, dove devo solo verificare il servizio:
<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>
po 'di hack, ma sembra funzionare abbastanza bene per i nostri clienti (sono stati utilizzando le condizioni all'interno dei componenti, piuttosto che le condizioni esempio lancio mostrate sopra)
Perfetto, basta avere lo stesso problema. All'inizio pensavo che non avrebbe funzionato per il caso in cui sia installato SQL Server Standard & Express, ma poi ho notato il "><" che dopo un po 'di scavo ho scoperto che i mezzi lasciati contengono giusto, stranamente non ho potuto trova menzione di quell'operatore di espressioni condizionali menzionato nei documenti di Wix, ma lo trova qui: http://www.tramontana.co.hu/wix/lesson6.php. – Bittercoder
Non si trova il valore InstalledInstance nella versione Windows 64 bit. – jmayor
è necessario passare a Wow6432Node anziché HKLM \ SOFT .. \ MSFT .. – jmayor