我正在使用VS2010和WiX 3.6创建MSI软件包并将其 bundle 到Bootstrapper安装程序中。这是我的Boostrapper代码。
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Bundle Name="" Version="" Manufacturer="" UpgradeCode="">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
<Chain>
<MsiPackage SourceFile="Package1.msi">
<MsiProperty Name="PARAM1" Value="[PARAM1]" />
<MsiProperty Name="PARAM2" Value="[PARAM2]" />
</MsiPackage>
<MsiPackage SourceFile="Package2.msi">
<MsiProperty Name="PARAM1" Value="[PARAM1]" />
<MsiProperty Name="PARAM2" Value="[PARAM2]" />
</MsiPackage>
</Chain>
</Bundle>
</Wix>
MSI软件包必须具有指定的参数才能运行。通常,我会称
"Packag21.msi PARAM1=1 PARAM2=2"
。构建项目后,我尝试以Bootstrapper.exe PARAM1=1 PARAM2=2
相同的方式将参数传递给Bootstrapper.exe,但似乎没有将其传递给MSI。安装因缺少参数条件而挂起。有没有办法将参数从exe传递到msi?
最佳答案
当前在标准 bootstrap 中不可用:WixStdBa doesn't make the commandline properties available - ID: 3489809
如果创建自己的 bootstrap ,则可以实现此类功能。
编辑:
尽管您无法通过命令行将参数传递给 bootstrap ,但是仍然可以通过多种方式以 bootstrap 的方式收集信息:
例如:设置变量
<Variable Name="PARAM1" Value="SomeValue" Persisted="yes" Type="string" />
例如:搜索注册表
<util:RegistrySearch Root="HKLM" Key="Software\SomeProduct" Value="SomeKey" Variable="PARAM1" Result="value"/>
关于.net - 将参数从 Bootstrap 传递到MSI bundle ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10501995/