![如何从命令提示符安装 MSI 包](https://linux22.com/image/499686/%E5%A6%82%E4%BD%95%E4%BB%8E%E5%91%BD%E4%BB%A4%E6%8F%90%E7%A4%BA%E7%AC%A6%E5%AE%89%E8%A3%85%20MSI%20%E5%8C%85.png)
我们有几个使用 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 中复活)。
请通过以下方式运行下载病毒总站为了安全。