.net - 将参数从 Bootstrap 传递到MSI bundle

标签 .net visual-studio wix installation wix3.6

我正在使用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/

相关文章:

c# - 什么是用于比较引用类型的两个实例的 "Best Practice"?

c# - 基本 WPF 应用程序需要 10 秒才能打开 (.NET 4.5)

visual-studio - 意外关闭后如何恢复 SSMS (Microsoft SQL Server Management Studio) 中丢失的 SQL 自动恢复文件

visual-studio - Visual Studio格式不适用于Control + K + D和多行

installation - Wix:应用属性发布

c# - .Net Socket 增强以支持 ACK 和聊天?

visual-studio - Visual Studio 2015空闲时CPU消耗高

java - Eclipse ant 任务使用自定义 WIX 配置文件 (wxs) 文件代替默认 wxs 文件

wix - 从 WiX 3.10 升级到 3.11,.wixproj 文件在 VS 2013 中显示 "incompatible"

c# - 有没有办法在 C# 中获取两组对象之间的差异