[英]Wix Toolset - Is there a way to validate silent install property values
[英]WiX silent install condition via property
是否可以通过WiX设置中的条件进行无“/ q”参数的静默安装?
我有一个UIRef和一个值为1的静默属性,现在我想安装静态,如果此属性为1。
WiX GUI :从来没有看到这是诚实的,我不会推荐它。 一些MSI文件根本没有GUI,然后它们安装时没有任何GUI - 显然。 我认为这是一个不可接受的选择。
条件 :我快速浏览了一下,并且调整InstallUISequence
的WelcomeDlg
条目可能会有效,尽管我发现这是一个非常奇怪的设计:
WelcomeDlg
:(未(NOT Installed OR PATCH) AND (NOT SILENT=1)
WelcomeDlg
(NOT Installed OR PATCH) AND (NOT SILENT=1)
Property table
添加一个条目; SILENT=0
以避免静默为默认运行模式 现在您可以尝试双击MSI,您将看到对话框。 如果您使用以下命令行,则应该没有对话框,但您将看到一个进度条,您将获得UAC提升提示:
msiexec.exe /i MySetup.msi SILENT=1
WiX Snippet :这是您可以尝试使用的标记。 不保证! :-)。 如果需要,我可以用完整的“小型可运行”样本替换 - 下面就是您可以“滑入”工作设置的内容。 如果要将卸载,修改和修复设置为静默,还需要更改维护模式/卸载对话框。 进行修改静默排序没有意义。
请记住,标记是“黑客”,并未在所有安装模式下进行全面测试:
install
,modify
,repair
,self-repair
,patch
,resume suspended
,uninstall
,major 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.