如何从命令提示符安装 MSI 包

如何从命令提示符安装 MSI 包

我们有几个使用 MSI 包部署的网站。每个网站一个包。

手动操作效果很好:

  • 我们进入控制面板
  • 卸载旧版本
  • 然后运行 ​​MSI,填写一些值,以安装新版本

我们希望能够运行批处理文件来执行此操作。

  • 这可以自动化吗?
  • 如何卸载旧版本?
  • 如何填写通常手动添加的值

答案1

您可以使用 msiexec,但是您最终可能会使用 orca(或任何其他 msi 编辑器)重写该 MSi。一旦您意识到如果您已将 MSI 设置为采用属性(将 MSi 设置为采用 PROPERTY=PropertyValue),任何 MSI 都可以自动化,WPKG 就毫无价值了。还有一些可以设置的默认属性(此处列出)。然后只需运行 msiexec /qn /uninstall product.msi 然后 msiexec /i product.msi /qn MYPROPERTY=propertyvalue 即可。您可以使用 pstools 或 powershell 远程运行命令

答案2

msiexec.exe是用于安装和卸载 MSI 文件的命令行程序。为了实现自动化,我建议西太平洋太平洋集团它允许您自动安装软件,包括 MSI。要填写这些值,我认为您需要创建一个 MST 文件,这可以使用多种工具来完成,包括教育学院或 Orca,然后在命令行上使用 指定它TRANSFORMS=package.mst

答案3

这里有很好的答案,但我只想补充一些澄清:

  • 自动卸载:通过创作升级表在 MSI 内部实现“重大升级“您无需手动或单独卸载以前的版本。新 MSI 的安装将在安装新 MSI 之前默默删除旧 MSI。这是实施重大升级的起点:http://msdn.microsoft.com/en-us/library/aa372374(v=vs.85).aspx。通过 msiexec.exe 调用旧 MSI 的卸载也是可以的,但我发现新 MSI 删除旧 MSI 更优雅自动地
  • 命令行安装:msiexec.exe 命令行功能非常广泛,通常允许您为每个 MSI 指定所有必需的详细信息,以便安装可以悄无声息地进行。在命令行中只能指定公共属性(由大写字母识别)。如前所述,还可以设置“默认属性”:http://support.microsoft.com/kb/230781

2018 年 6 月更新:虽然下面显示的工具不再可供下载,但我通过 Wayback machine 找到了它。我认为链接到它是可以的,也是合法的,因为该工具是免费软件。下面更新了链接。

更新遗憾的是,Wise 的这款工具已无法下载。我也不确定是否可以分发它。它似乎是作为其主要 Wise Package Studio 套件的一部分分发的免费工具,但我不认为它是开源的。我希望他们能将其作为开源工具发布。

由于一些原因,Wise 包装产品已停产法律问题


有一个工具可以帮助您以交互方式构建 msiexec.exe 命令行。

为了避免手动构建这些愚蠢的 msiexec 命令行,请使用msi 命令行构建器工具来自 Wise:http://www2.wise.com/filelib/WICLB.exe从 Wayback machine 中复活)。

请通过以下方式运行下载病毒总站为了安全。

Wise 的 msiexec.exe 命令行生成器的示例屏幕

相关内容