簡體   English   中英

在Wix中獲取命令行參數

[英]Get command line arguments in Wix

有沒有一種方法來獲取/枚舉使用msiexec傳遞的屬性? 如果屬性拼寫錯誤,我需要顯示一個錯誤。

由於某些原因,Windows Installer從未實現過屬性枚舉功能。 您可以查詢屬性表,但只能在構建時獲取該表中定義的屬性。 我不知道該怎么做。 我最好的解決方法是使用EXE引導程序前端MSI,並在那里進行檢查。 然后,您可以將諸如EXEDRIVEN = 1之類的內容傳遞給您的MSI,然后讓您的MSI門檢查該屬性。

另一個想法是使用CLIENTPROCESSID在自定義操作中查詢Win32_Process。

命令行上設置的所有屬性都必須是PUBLIC (大寫)屬性,如果在命令行上設置了它們,則應將它們通過SecureCustomProperties屬性分隔的屬性列表添加到傳遞給服務器安裝過程的屬性列表中。 此處未列出的任何屬性在延遲安裝模式下均不可用,在該模式下可以進行各種更改,因為它使用LocalSystem帳戶(內置操作系統服務帳戶)運行。 用戶界面序列以用戶權限運行,如果以靜默方式運行安裝,則可以完全跳過該序列。

如果在SecureCustomProperties屬性中保留此屬性列表,並通過命令行設置所有接受的屬性,則可以使用簡單的字符串操作枚舉它們。 您用分號分隔字符串,然后枚舉所有值。 您可以在屬性表中設置默認值 ,並在命令行上覆蓋它們。 您的代碼可以檢查發送到服務器進程的值是默認值還是已更改。 您甚至可以將不可接受的值設置為默認值,因此必須通過命令行覆蓋該屬性。

請注意EnableUserControl屬性

暫無
暫無

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

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