簡體   English   中英

Wix Toolset-有沒有辦法驗證靜默安裝屬性值

[英]Wix Toolset - Is there a way to validate silent install property values

我想做的是驗證在msiexec / QN調用中輸入的屬性值。

例如,對於我們的運行時SQL Server數據庫身份驗證,我們需要提供Windows身份驗證和SQL用戶身份驗證。 我用UI對話框窗口上的RadioButtonGroup表示這些。 通過UI的“ RT_DB_LOGON_TYPE”屬性的默認值為“ SqlAuth”。

對於無提示安裝,我想:

1)如果用戶在靜默安裝命令行上未為“ RT_DB_LOGON_TYPE”屬性輸入任何值,則將“ RT_DB_LOGON_TYPE”屬性的默認值設置為“ SqlAuth”。

2)檢查啟動條件,如果“ RT_DB_LOGON_TYPE”屬性的值設置為“ SqlAuth”或“ WinAuth”以外的其他值(不區分大小寫),則啟動條件將失敗。

我的代碼(位於等效於product.wxs文件的位置):

<SetProperty Id="RT_DB_LOGON_TYPE" Value="SqlAuth" Before="LaunchConditions" Sequence="both">NOT RT_DB_LOGON_TYPE</SetProperty>
<Condition Message="!(loc.RT_DB_LOGON_TYPE_Messg)">RT_DB_LOGON_TYPE ~= "SqlAuth" OR RT_DB_LOGON_TYPE ~= "WinAuth"</Condition>

構建WiX MSI軟件包時,出現以下錯誤:

[exec] D:\\ stuff \\ scripts \\ testNG \\ installation \\ wix_installer \\ dialogs \\ TenantDBConnectDlg.wxs(23):錯誤LGHT0094:在“片段:”部分中未解析對符號“屬性:RT_DB_LOGON_TYPE”的引用。

有沒有辦法在WiX中進行這種驗證?

看起來我解決了自己的問題; 至少對於Wix RadioButtonGroup元素而言。

在我的product.wxs等效文件中,我只添加了這兩行

<Property Id="RT_DB_LOGON_TYPE" Value="SqlAuth" />
<Condition Message="!(loc.RT_DB_LOGON_TYPE_Messg)">RT_DB_LOGON_TYPE ~= "SqlAuth" OR RT_DB_LOGON_TYPE ~= "WinAuth"</Condition>

在日志文件中,一切正常。 RT_DB_LOGON_TYPE:

1)獲取屬性元素中的值的設置2)獲取被命令行中輸入的值覆蓋的值(例如RT_DB_LOGON_TYPE = foo 3)獲取啟動條件下的值,該條件在日志文件中捕獲。

注意:在日志文件之外,我沒有發現有關此故障的直觀線索。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM