【问题标题】:How to find out defaults when executing MSI with /qn (silent mode)?使用 /qn(静默模式)执行 MSI 时如何找出默认值?
【发布时间】:2009-10-28 00:09:35
【问题描述】:

当我运行 MSI(不带参数)时,我通常必须通过对话框单击并选择是否要安装到当前用户/所有用户、目标目录等。 当我使用 /qn(静默模式)运行 MSI 时会发生什么。如何找到为所有这些对话框自动选择的答案?

【问题讨论】:

    标签: installation windows-installer


    【解决方案1】:

    MSI 基本上是一个数据库。您可以使用 Orca 打开它并查看/更改设置。

    • 可以找到有关 Orca 的信息 here
    • 快速演练如何 使用 Orca 可以找到here
    • 有点与你的 问题,您可以编辑哪些用户 安装程序将以静默方式安装 模式。信息是here

    我希望这至少能让你朝着正确的方向前进。

    编辑:

    例如,下载 WiX 3.0 的安装程序并在 Orca 中打开它。

    1. 转到属性表,您将看到公共(大写)和私有属性的列表。
    2. 注意WIXUI_INSTALLDIR 属性设置为APPLICATIONFOLDER
    3. 转到目录表,您会看到APPLICATIONFOLDER 被设置为具有默认值“vqee3ld3|Windows Installer XML v3”或类似的东西。
    4. 要查找设置此属性的对话框,请转到 ControlEvent 表。在这里,您将看到InstallDirDlg 在用户单击 Next 控件时触发事件 SetTargetPath。这个事件设置的参数是WIXUI_INSTALLDIR,它反过来设置APPLICATIONFOLDER

    您可以尝试编辑这些属性并运行安装程序以查看属性是如何更改的。如果您有要设置的默认属性,则可以运行。例如,关闭 Orca 以释放对 msi 文件的锁定并运行:

    msiexec /i Wix3.msi APPLICATIONFOLDER="C:\Program Files\WiX" /qn
    

    this powerpoint 中有关 MSI 表结构的更多信息

    【讨论】:

    • 我知道 Orca.. 我知道对话框基本上设置属性值。但是..有没有办法找出每个对话框修改了哪些属性?这实际上是我的问题的实质。非常感谢!
    • Nestor,我用一个查找默认值的示例更新了我的答案,它来自哪个对话框,以及如何在静默安装模式下覆盖该值。我真的只有使用 WiX 生成的 MSI 的经验,所以我添加了一个 powerpoint 链接,其中包含 Microsoft 安装程序中核心 MSI 表的漂亮图表。
    【解决方案2】:

    您可以通过命令行设置 PUBLIC 属性是正确的。这些属性总是大写的,并且通常总是列在属性表中,尽管不能保证一定是这样。通过查看属性表,您应该能够解码每个公共属性的作用。如果没有,通常伴随 MSI 的文档以 PDF 或 readme.txt 的形式提供帮助。

    使用正确的工具,您还可以查看每个 MSI 对话框的详细信息并检查已定义的事件以设置它们。这需要 Installshield 或 Wise 等工具。

    静默安装的另一个可能选项是我刚刚意识到的内置 MSI 功能:AdminProperties 属性。在此处查看信息:http://msdn.microsoft.com/en-us/library/aa367542(v=vs.85).aspx

    【讨论】:

    • 不错!当我最初回答时,这家酒店并不存在。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 2017-11-17
    • 2010-11-05
    • 2013-09-13
    • 1970-01-01
    相关资源
    最近更新 更多