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

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

这工作正常手动:

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

我们希望能够运行一个batch file来做到这一点。

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

你可以使用msiexec,但是你可能会用orca(或者任何其他的msi编辑器)重写MSi,一旦你意识到任何MSI可以被自动化,如果你设置了MSI来获取属性(set MSi最多取PROPERTY = PropertyValue。)还有一些可以设置的默认属性( 这里列出 )。 这就像运行msiexec / qn /卸载product.msi然后msiexec / i product.msi / qn MYPROPERTY = propertyvalue一样简单。 您可以使用pstools或PowerShell远程运行命令

msiexec.exe是安装和卸载MSI文件的命令行程序。 为了实现自动化,我build议WPKG允许您自动安装软件,包括MSI。 为了填写这些值,我想你需要创build一个MST文件,这个文件可以用几个工具完成,包括InstEd或者Orca,然后在命令行中用TRANSFORMS=package.mst指定它。

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

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

更新这个工具从智者遗憾不能下载了 。 我不知道是否可以分发。 它似乎是一个免费的工具,作为他们主要的Wise Package Studio套件的一部分发布,但我不认为它是开源的。 我希望他们能把它作为一个开源工具发布。

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


有一个工具可以帮助你交互地构build一个msiexec.exe命令行。 从Wise下载MSI命令行构build工具 http://www2.wise.com/filelib/WICLB.exe

Wise的msiexec.exe命令行构建器的示例屏幕