可以在运行.msi安装程序后确定生成的命令行吗?

时间:2018-05-21 19:44:01

标签: windows-installer transform msiexec silent-installer

如果我想要静默安装,是否有任何简单的方法来运行安装程序,选择所需的选项,然后确定等效安装所需的msiexec选项/开关? (最好不要实际安装任何东西 - 不要点击完成)

或者正在挖掘MSI数据库,你可以做些什么来找到所需的属性?

2 个答案:

答案 0 :(得分:0)

  

UPDATE, Aug 2018 :整合标题部分,其中包含完整的"答案"下面 - 试图强调似乎有意义的部分。

     

日志文件CommandLine :想到了另一种选择。如果您记录您的MSI安装,那么您可以搜索   条目CommandLine的结果日志文件,看看是什么   命令行设置正在运行,实际上是(linking a related answer for easy retrieval)。 记录您的安装msiexec.exe /i C:\Path\Your.msi /L*v C:\Your.loglogging details)。日志   file还应枚举设置期间设置的所有属性值   安装 - 但是在日志的其他地方(CommandLine   条目仅显示指定的命令行)。不能保证这个命令行总是正确的,但要给它一个旋转吗?

     

转换生成工具 :一些商业工具提供了允许在捕获期间捕获MSI GUI设置的小型组件   "干运行" - 这似乎是你问的核心(我   试着让答案变得通用,对其他人也很有用 - 对不起,如果   这会混淆事情)。有关详细信息,请参阅此答案:   的 Generate Mst response tool 即可。   我不认为这些是可以重新分发的,所以你无法将它们传递给   你的客户。您可以询问供应商是否允许重新分发   虽然?如果你这样做 - 让我们知道吗?我没有示例代码   允许你滚动自己的工具 - 不幸的是。可能有   github上的东西。不是火箭科学,但一切都需要时间。

自定义无提示安装

您似乎只想在许多计算机上复制相同的安装? (由专业人员完成的企业大规模部署)。或者,您是否希望允许用户使用通用工具或方法来帮助配置安装? (一般为任何最终用户设置定制)。我将写一个通用的概述,希望能够回答这两个问题。部署专业人员通常知道该怎么做,他们需要知道要做什么 - 您的设置有什么不寻常之处 - 如果有的话。

您可以通过多种方式自定义MSI安装,但最常用的方法是使用批处理文件/命令行参数转换文件 - 通常将两者结合使用。以下答案更详细地介绍了这两种方法: How to make better use of MSI files 。从理论上讲,您也可以通过编程方式调用安装 - 例如使用MSI APICOM automation) - 很少这样做。 MSI API and Win32, COM and DTF / .NET

途径

基于以上两种主要方法或机制,我想我们可以列出一些真实世界的选项,供最终用户进行设置定制 - 部署专业人员与否。

以下几种方法可以成功结合 - 因此您有一个默认批处理文件集来安装默认转换文件,并且您有一个PDF文档,解释了正常的安装参数和更多选项 - 以及不应该这样做。默认转换文件由最终用户调整(许可证密钥,连接字符串,URL,快捷方式位置,要安装的功能,等等......)

标准转换 :我想您可以提供包含默认设置的标准转换文件*.mst?但是为什么不直接将这些设置作为安装的默认设置?也许你想要不同地区的不同设置?您可以为不同目的提供多种标准转换。

批处理文件 :您可以使用不同的"默认"创建一堆批处理文件。设置让用户使用他们需要的设置?有关设置内容的内联信息 - 例如许可证密钥等...您可以使用仅设置PUBLIC属性值的批处理文件,也可以使用批处理文件以及上面提到的标准转换。变换是重量级自定义,属性是轻量级自定义。

Administrative Installation :我从未见过它,但我想您可以在管理安装序列中进行自定义操作,生成批处理文件使用您设置的参数,甚至生成具有相同设置的转换文件?管理员安装不会显示您的常规MSI GUI - 因此,这需要双重工作,因为您必须创建一个"设置生成器GUI"对于您的管理安装GUI序列(有常规安装,管理员安装和广告安装的单独GUI序列)。还提到AdminProperties property概念 - 我坦率地不确定它是如何工作的。我从来没有用过它。

单页PDF :我首选的方法是提供一页一页的PDF文档Large Scale Deployment Guide.pdf(或#34;无声部署"或类似的)。它以最大限度描述了可用的不同安装选项及其含义。什么不该做。显示了几个示例命令行。专业人士将在几秒钟内了解该做什么。 列出完整的运行时要求!(先决条件,运行时)。解释不该做什么(" ...不要禁用这些自定义操作,这就是为什么...... ")。

一些链接

答案 1 :(得分:0)

是的,听起来你需要创建一个响应转换(MST)。上面链接的许多工具都是高级工具(不值得为响应转换付费!!)但我之前使用过这个(这个工具是免费的)它看起来效果很好:

http://www.jontylovell.net/index.php?page=10

使用安装配置创建响应转换后,需要在命令行中使用以下命令指定转换:

<table style="width:50%">
  <tr>
    <td>Extended Error message</td>
    <td>Hi
this is new line</td>
  </tr>
</table>