Я попытался сделать это несколькими способами. Вот моя последняя попытка, которая не работает, но должна помочь проиллюстрировать то, что я ищу.WiX Toolset - Как определить путь DATA SQL Server
Примечание. Мое предположение для идентификатора GetSQLServerInstalledInstance заключается в том, что он вернет один экземпляр.
Моя цель - найти путь к каталогу DATA для экземпляра SQL Server, установленного на компьютере, который также будет устанавливать продукт моих компаний.
<util:RegistrySearch Id='GetSQLServerInstalledInstance'
Variable='SQL_SERVER_INSTALLED_INSTANCE'
Root='HKLM'
Key='SOFTWARE\Microsoft\Microsoft SQL Server'
Value="InstalledInstances"
Format="raw" />
<util:RegistrySearch Id='GetSQLServerInstalledInstanceName'
Variable='SQL_SERVER_INSTALLED_INSTANCE_NAME'
Root='HKLM'
Key='SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL'
Value="[SQL_SERVER_INSTALLED_INSTANCE]"
Format="raw"
After="GetSQLServerInstalledInstance" />
<util:RegistrySearch Id='GetSQLServerInstallPath'
Variable='SQL_SERVER_INSTALL_PATH'
Root='HKLM'
Key='SOFTWARE\Microsoft\Microsoft SQL Server\[SQL_SERVER_INSTALLED_INSTANCE_NAME]\Setup'
Value="SQLPath"
Format="raw"
After="GetSQLServerInstalledInstanceName" />
<SetProperty Id='SQL_SERVER_FILE_PATH' Value="[SQL_SERVER_INSTALL_PATH]\DATA" After="CostFinalize" Sequence="first" />
В конце концов, я ищу для свойства SQL_SERVER_FILE_PATH, чтобы содержать этот путь. (например, C: \ Program Files \ Microsoft SQL Server \ MSSQL11.MSSQLSERVER \ MSSQL \ DATA)
Также важно, чтобы вызовы были последовательно упорядочены, при этом последующие вызовы могут содержать информацию, полученную из предыдущих вызовов.
Я по-прежнему довольно новичок в WiX, но я мог представить, как это сделать довольно легко, если элемент SetProperty разрешил дочернему элементу RegistrySearch установить его значение. Может ли это быть обработано последовательностью CustomActions, которая будет действовать аналогично элементу SetProperty, который позволяет дочернему элементу RegistrySearch устанавливать его значение?
Благодаря