【发布时间】:2009-10-28 00:09:35
【问题描述】:
当我运行 MSI(不带参数)时,我通常必须通过对话框单击并选择是否要安装到当前用户/所有用户、目标目录等。 当我使用 /qn(静默模式)运行 MSI 时会发生什么。如何找到为所有这些对话框自动选择的答案?
【问题讨论】:
标签: installation windows-installer
当我运行 MSI(不带参数)时,我通常必须通过对话框单击并选择是否要安装到当前用户/所有用户、目标目录等。 当我使用 /qn(静默模式)运行 MSI 时会发生什么。如何找到为所有这些对话框自动选择的答案?
【问题讨论】:
标签: installation windows-installer
MSI 基本上是一个数据库。您可以使用 Orca 打开它并查看/更改设置。
我希望这至少能让你朝着正确的方向前进。
编辑:
例如,下载 WiX 3.0 的安装程序并在 Orca 中打开它。
WIXUI_INSTALLDIR 属性设置为APPLICATIONFOLDER。 APPLICATIONFOLDER 被设置为具有默认值“vqee3ld3|Windows Installer XML v3”或类似的东西。 InstallDirDlg 在用户单击 Next 控件时触发事件 SetTargetPath。这个事件设置的参数是WIXUI_INSTALLDIR,它反过来设置APPLICATIONFOLDER
您可以尝试编辑这些属性并运行安装程序以查看属性是如何更改的。如果您有要设置的默认属性,则可以运行。例如,关闭 Orca 以释放对 msi 文件的锁定并运行:
msiexec /i Wix3.msi APPLICATIONFOLDER="C:\Program Files\WiX" /qn
this powerpoint 中有关 MSI 表结构的更多信息
【讨论】:
您可以通过命令行设置 PUBLIC 属性是正确的。这些属性总是大写的,并且通常总是列在属性表中,尽管不能保证一定是这样。通过查看属性表,您应该能够解码每个公共属性的作用。如果没有,通常伴随 MSI 的文档以 PDF 或 readme.txt 的形式提供帮助。
使用正确的工具,您还可以查看每个 MSI 对话框的详细信息并检查已定义的事件以设置它们。这需要 Installshield 或 Wise 等工具。
静默安装的另一个可能选项是我刚刚意识到的内置 MSI 功能:AdminProperties 属性。在此处查看信息:http://msdn.microsoft.com/en-us/library/aa367542(v=vs.85).aspx
【讨论】: