簡體   English   中英

WiX靜默安裝條件通過財產

[英]WiX silent install condition via property

是否可以通過WiX設置中的條件進行無“/ q”參數的靜默安裝?

我有一個UIRef和一個值為1的靜默屬性,現在我想安裝靜態,如果此屬性為1。

WiX GUI :從來沒有看到這是誠實的,我不會推薦它。 一些MSI文件根本沒有GUI,然后它們安裝時沒有任何GUI - 顯然。 我認為這是一個不可接受的選擇。

條件 :我快速瀏覽了一下,並且調整InstallUISequenceWelcomeDlg條目可能會有效,盡管我發現這是一個非常奇怪的設計:

  1. 使用Orca並將此條件添加到WelcomeDlg :(未(NOT Installed OR PATCH) AND (NOT SILENT=1) WelcomeDlg (NOT Installed OR PATCH) AND (NOT SILENT=1)
  2. 還要在Property table添加一個條目; SILENT=0以避免靜默為默認運行模式

現在您可以嘗試雙擊MSI,您將看到對話框。 如果您使用以下命令行,則應該沒有對話框,但您將看到一個進度條,您將獲得UAC提升提示:

msiexec.exe /i MySetup.msi SILENT=1

WiX Snippet :這是您可以嘗試使用的標記。 不保證! :-)。 如果需要,我可以用完整的“小型可運行”樣本替換 - 下面就是您可以“滑入”工作設置的內容。 如果要將卸載,修改和修復設置為靜默,還需要更改維護模式/卸載對話框。 進行修改靜默排序沒有意義。

請記住,標記是“黑客”,並未在所有安裝模式下進行全面測試: installmodifyrepairself-repairpatchresume suspendeduninstallmajor upgrade uninstall etc... - 請相應地進行測試 - 總會有驚喜:

 <..> <Property Id="SILENT" Value="0" /> <UIRef Id="WixUI_Mondo" /> <..> <InstallUISequence> <Show Dialog="WelcomeDlg" After="ResumeDlg">(NOT Installed OR PATCH) AND (NOT SILENT=1)</Show> <Show Dialog="ExitDialog" OnExit="success">(NOT SILENT=1)</Show> </InstallUISequence> <..> 

注意! 像這樣的構造在現實生活中往往會適得其反。 突然間,你會看到一個在一些不起眼的安裝模式中沒想到的問題(暫停的簡歷,補丁,修改或類似)。 如果您想使用它,請確保測試良好。

請注意,還有其他對話框 - 例如修改和修復(維護模式對話框) - 仍會顯示。 如果你希望它們的行為不同,你也必須對它們進行條件化(並且可能會保持SILENT屬性以確定是否要禁止對話框)。

暫無
暫無

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

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