MSI 软件包的静默安装
Posted
技术标签:
【中文标题】MSI 软件包的静默安装【英文标题】:Silent installation of a MSI package 【发布时间】:2012-01-23 12:20:54 【问题描述】:我有一个 MSI 包,如果该包尚未安装,我需要安装它。我也需要静默安装。包提示用户:
安装位置(C:\Program Files\Foobar) 安装类型:最小和完整(最小)我需要使用命令行参数或其他方法覆盖这两个参数。那么我该如何解决这两个问题。我将使用 VBScript 编写脚本。
【问题讨论】:
【参考方案1】:静默安装 MSI 的正确方法是通过msiexec.exe command line
,如下所示:
msiexec.exe /i c:\setup.msi /QN /L*V "C:\Temp\msilog.log"
快速解释:
/L*V "C:\Temp\msilog.log"= verbose logging
/QN = run completely silently
/i = run install sequence
这里有一个更全面的答案:Batch script to install MSI。此答案提供了有关 msiexec.exe 命令行选项 的详细信息以及如何查找可以在安装时在命令行上设置的“公共属性” 的说明。对于每个 MSI,这些属性通常是不同的。
【讨论】:
【参考方案2】:您应该能够将/quiet
或/qn
选项与msiexec
一起使用来执行静默安装。
MSI 包导出公共属性,您可以在msiexec
参数末尾使用PROPERTY=value
语法进行设置。
例如,这个命令安装一个没有 UI 和重启的包,带有一个日志和两个属性:
msiexec /i c:\path\to\package.msi /quiet /qn /norestart /log c:\path\to\install.log PROPERTY1=value1 PROPERTY2=value2
您可以阅读msiexec
的选项,只需在 Start -> Run 中不带任何选项运行即可。
【讨论】:
有没有办法找到可接受的参数列表(在您的示例中为PROPERTY1
和PROPERTY2
)?
这里是预定义的属性列表:msdn.microsoft.com/en-us/library/windows/desktop/… 每个安装创作工具的安装文件夹属性都不同。您使用什么来创建 MSI?
@Cosmin:MSI 包含支付系统的运行时 DLL(不是我创建的)。我正在查看一个名为 Ocra 的工具来剖析 MSI,它给了我一个关于名为“INSTALLLOCATION”的变量的提示。我正在检查。
注意:msiexec 似乎对指定 MSI 包的完整文件路径非常挑剔。不要尝试任何.\mypackage.msi
业务。我花了一点时间才弄明白。
MS产品的名字其实是Orca,不是ocra。拼写错误可能很难用谷歌搜索。你可能会得到很多克里奥尔食谱......但不是 MSI 建设者。 msdn.microsoft.com/en-us/library/aa370557(v=vs.85).aspx以上是关于MSI 软件包的静默安装的主要内容,如果未能解决你的问题,请参考以下文章