繁体   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