我試圖用幾種方法做到這一點。這是我最近的嘗試,但不起作用,但應該幫助說明我想要做的事情。WiX工具集 - 如何確定SQL Server數據路徑
注意:我對GetSQLServerInstalledInstance Id的假設是它將返回一個實例。
我的目標是找到安裝在我的公司產品上的計算機上安裝的SQL Server實例的DATA目錄路徑。
<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子元素設置它的值,該如何很容易地做到這一點。這可以通過一系列的自定義操作來處理,這些自動操作的行爲類似於允許RegistrySearch子元素設置其值的SetProperty元素?
感謝