Parameters 检测无人参与安装的msi参数

Parameters 检测无人参与安装的msi参数,parameters,windows-installer,Parameters,Windows Installer,我有一个msi软件包,可以选择安装两种不同的语言,是否有方法检测负责选择语言的参数,以便我可以使用命令提示符以静默方式安装软件包(无人值守安装) 感谢处理MSI的正常方法是,属性表中完全用大写字母命名的任何属性都被视为公共外部属性。这意味着当您从命令行运行MSI时,它是可设置的 因此,如果您确定了如何标记您的语言选择,请为其添加一个属性,然后您可以将MSI中组件或功能的安装链接到该标记/变量 因此,如果您还不熟悉这些概念,请查看MSIs的组件、功能和属性。您没有提到您正在使用的MSI构建器-如果

我有一个msi软件包,可以选择安装两种不同的语言,是否有方法检测负责选择语言的参数,以便我可以使用命令提示符以静默方式安装软件包(无人值守安装)


感谢

处理MSI的正常方法是,属性表中完全用大写字母命名的任何属性都被视为公共外部属性。这意味着当您从命令行运行MSI时,它是可设置的

因此,如果您确定了如何标记您的语言选择,请为其添加一个属性,然后您可以将MSI中组件或功能的安装链接到该标记/变量

因此,如果您还不熟悉这些概念,请查看MSIs的组件、功能和属性。您没有提到您正在使用的MSI构建器-如果您使用的是Visual Studio附带的MSI构建器,我不知道它是否能够让您访问组件和功能,但有一两个低价或免费(即Wix)的替代方案可以做到这一点(如果你使用的是Wise或InstallShield等合适的工具,那么你可以完全控制所有这些东西)

编辑:指向一个脚本,该脚本将为您提取公共属性列表(单击文本Get MSI File properties.vbs以查看该脚本)。或者,并可能为您提供一些其他选项

我知道有一些Windows管理工具可以让你拆解和/或包装MSI,但我不记得它们叫什么。

(注意:我在另一个StackExchange网站上发布了一个类似问题的不同回复。)

lessmsi是一个非常好的工具,如果您愿意打开它的GUI并进行一些手动调查,它肯定可以在这里工作

如果您正在寻找快速解决方案,您可以尝试:

lessmsi l -tProperty <msi_name>

我不是制作msi的人,这就是为什么我问如何检测所有可能的参数。OK,我已经编辑了我的帖子。我还投票将此移到serverfault,因为它是一个更相关的地方(如果它是关于创作msi的,它将属于这里)。您可能需要手动询问那边的问题,以防此问题在列表中滑得太远,无法获得足够的票数自动移动。这看起来是一个全面的资源,尽管列出的许多工具都比较旧:@Matt这是一组很好的资源。您应该将其编辑到答案中(我会这么做,但我不想因为你的输入而受到表扬)。也不要忽略
msiexec/L*d:\install.log…
,检查install.log中带有
Property(S)
Property(C)
和ALLCAPS参数的行(帽子尖指向@JonHeese from)
<msi_name> /lp! <msi_property_logfile>
msiexec /lp! <msi_property_logfile> /i <msi_name>
msiexec /a <msi_name> /lp! <msi_property_logfile> TARGETDIR=<absolute_path_to_extract_to>
msiexec /i <msi_name> /passive ALLUSERS=1