代码之家  ›  专栏  ›  技术社区  ›  Nestor

使用/qn(静默模式)执行msi时如何查找默认值?

  •  6
  • Nestor  · 技术社区  · 15 年前

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

    2 回复  |  直到 15 年前
        1
  •  6
  •   Joseph Yaduvanshi    15 年前

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

    • 可以找到有关ORCA的信息 here .
    • 关于如何 使用ORCA可以找到 here .
    • 与你的 问题,您可以编辑哪些用户 安装程序将静默安装 模式。信息是 here .

    我希望这至少让你找到了正确的方向。

    编辑:

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

    1. 转到属性表,您将看到公共(大写)和私有属性的列表。
    2. 注意到 WIXUI_INSTALLDIR 属性设置为 APPLICATIONFOLDER .
    3. 去目录表,你会看到 应用程序文件夹 设置为默认值为“ vqee3ld3|Windows Installer XML v3 “或者类似的东西。
    4. 要查找设置此属性的对话框,请转到ControlEvent表。在这里,你会看到 InstallDirDlg 当用户单击下一个控件时激发事件设置目标路径。此事件集的参数是 Wixui_安装目录 ,依次设置 应用程序文件夹

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

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

    有关中的msi表结构的详细信息 this powerpoint

        2
  •  1
  •   Stein Åsmul    13 年前

    通过命令行设置公共属性是正确的。这些属性总是大写的,通常都列在属性表中,尽管不能保证是这样。通过查看属性表,您应该能够解码每个公共属性的功能。如果没有,通常会有PDF或readme.txt格式的文档与MSI一起提供帮助。

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

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