如何将参数从exe文件传递到msi?
Posted
技术标签:
【中文标题】如何将参数从exe文件传递到msi?【英文标题】:How can i pass parameter to from exe file to msi? 【发布时间】:2014-03-14 05:50:36 【问题描述】:我使用引导程序创建了一个 exe。现在我希望我的安装保持安静。 我可以在以下命令的帮助下使用 msi 文件以静默模式安装它。
msiexec /i Setup.msi /qn ADDLOCAL=freature
但我想以静默模式安装 mysetup.exe。如何从引导程序将参数传递给 msi,以便安装处于静默模式。 我已经护目镜好几个小时了,但我找不到路。
【问题讨论】:
我没有收到您的问题,请明确您是希望 mysetup.exe 处于静默模式还是 Setup.msi。还是两者都处于静音模式???? 我希望 mysetup.exe 处于静默模式。 那你为什么要从引导程序向 msi 传递参数???是否像您想要以静默模式安装它的命令/标志与您用于 msi (/qn) 的一样?? 是的,我想以静默模式安装我的安装文件。但我不知道该怎么做。 我认为您想要的是用于静默安装的安装程序命令行开关。尝试(命令提示符)mysetup.exe -s 【参考方案1】:您需要在 Burn 引导程序中定义一个变量。使用你的例子,你需要这样的东西:
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">
<Bundle Name="Setup" Version="1.0.0.0" UpgradeCode="YOUR-GUID">
<Variable Name="ADDLOCAL" bal:Overridable="yes"/>
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense">
<bal:WixStandardBootstrapperApplication />
</BootstrapperApplicationRef>
<Chain>
<MsiPackage DisplayName="Setup" Name="Setup.msi" SourceFile="Setup.msi">
<MsiProperty Name="ADDLOCAL" Value="[ADDLOCAL]" />
</MsiPackage>
</Chain>
</Bundle>
</Wix>
现在您可以运行 Setup.exe -q ADDLOCAL=feature
并且 .msi 将传递该变量。
【讨论】:
【参考方案2】:Wix 标准引导程序仅支持这些标准包开关-> -q、-quiet、-s、-silent = 静默安装 -passive = 仅安装进度条 -norestart = 禁止重启 -forcerestart = 无论如何重新启动(我不知道为什么这仍然是 周围) -promptrestart = 提示是否需要重新启动(默认) -layout = 创建引导程序的本地映像(即下载文件以便 它们可以刻录到 DVD) -l, -log = 记录到特定文件(默认由捆绑开发者控制) -卸载 = 卸载 -repair = 修复(如果未安装,则安装) -package,-update = install(如果没有 -uninstall 或 -repair 则默认)Reference
【讨论】:
谢谢,-q 工作。但我无法从 myexe 安装特定功能 我可以使用命令“msiexec /i Setup.msi /qn ADDLOCAL=feature1”通过 msi 安装特定功能。我想从我的设置文件中获取相同的内容。例如,mysetup.exe -q ADDLOCAL=feature1 我可以这样做吗??以上是关于如何将参数从exe文件传递到msi?的主要内容,如果未能解决你的问题,请参考以下文章