将命令行参数从 WiX 包传递到 MSI

2023-12-30

我使用的是 Wix 3.7。我有一个 MSI,我想设置一个注册表项(可能通过自定义操作,因为他必须检查该注册表项是否已存在)。

据我所知,引导程序项目中的捆绑包无法更改计算机状态(例如设置注册表)。因此,我尝试通过传递命令行参数<MsiProperty>,但似乎没有在引导程序的日志文件中显示为命令行参数。

  1. 是否可以在捆绑包中设置注册表项?
  2. 如果没有,我如何添加命令行参数(或其他一些自定义数据) 传递给 MSI。
  3. MSI 如何读取我传递给它的任何内容(无论它最终是命令行参数还是其他东西) 别的)。

Bundle:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Bundle 
          Name="MyInstallerBootstrapperLocalDb" 
          Version="1.0.0.0" 
          Manufacturer="some company" 
          UpgradeCode="PUT-GUID-HERE">
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
    <Chain>
      <MsiPackage Id="MyInstallerInstaller" 
                  SourceFile="$(var.MyInstallerInstaller.TargetPath)" 
                  Compressed="no">
        <!-- TODO - if this is being set correctly, the MSI needs to 
                    interpret it and set up the key-->
        <MsiProperty Name="SetLocalDb" Value="yes"/>
      </MsiPackage>
    </Chain>
  </Bundle>
</Wix>

您的 MSI 需要定义如下属性:

<Property Id="SOMEPROPERTY" Value="Default"/>

然后您可以从捆绑包中设置此属性:

<MsiPackage SourceFile="<package>.msi" Id="SomeId">
    <MsiProperty Name="SOMEPROPERTY" Value="[SomeProperty]" />
</MsiPackage>

之后,您可以按照此处所述在引导程序中设置属性:WiX Bootstrapper:如何从命令行设置刻录变量? https://stackoverflow.com/questions/14762617/wix-bootstrapper-how-do-i-set-burn-variables-from-the-command-line

请注意,SomeProperty 是一个 Burn 变量,您必须定义它:

<Variable Name="SomeProperty" Type="string" Value="DefaultValue" />

Update:

在 MSI 中,您可以根据此属性进行注册表搜索:

<RegistrySearch Id="GetSomeValue" Root="HKLM" Key="SOFTWARE\<Manufacturer>\[SOMEPROPERTY]" Name="<ValueName>" Type="raw" />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将命令行参数从 WiX 包传递到 MSI 的相关文章

  • 在 Wix 安装程序中以管理员模式运行 customAction 中的 ExeCommand

    我是 wix 安装程序的新手 我已经为我的应用程序使用 wix 安装程序开发了一个设置 我需要执行自定义操作来运行 cmd exe 中的命令 XP 下运行正常 但在 Windows 8 和 7 中 cmd 提示符需要以管理员身份运行 我用谷
  • 在 WiX 中如何通过名称选择 IIS 网站?

    我想做的是向安装程序用户显示其服务器上的网站列表 并允许他们选择一个 使用此处描述的方法 http www cmcrossroads com content view 13160 120 http www cmcrossroads com
  • 无法再卸载 Visual Studio 2017

    我在运行最新的 VS2017 时遇到了严重的问题 因为在我升级它时它进入了不一致的状态 有一些残留的软件包拒绝卸载 因为它们显然缺少来自的缓存文件C Windows Installer文件夹 我从来没有碰过那个文件夹 然而 我确实移动了C
  • 使用 WiX 进行重大升级后无法启动 Windows 服务

    我有一个非常简单的 WiX 项目 没有什么花哨 当尝试对现有安装执行 MajorUpgrade 时 无法启动服务 并且不可避免地会回滚到以前的版本并正常启动服务 我已经删除了Start install 并成功手动启动应用程序 所以我知道这不
  • 如何使用 WiX 设置服务的恢复选项?

    我有以下 wxs 文件
  • 使用自定义操作卸载多个产品

    我正在为我们的产品开发基于 WIX 的安装程序 该产品有一个基础产品和许多插件 基础版和插件将作为单独的 MSI 提供 仅当底座可用时才能安装插件 基础和插件在根文件夹下共享公共文件夹树 例如 C Program files MyProdu
  • Wix如何隐藏功能选项

    我正在使用 Wix 3 5 构建 MSI 安装程序 我想知道是否有任何方法可以隐藏 功能自定义安装对话框 中的某些选项 您可以在其中从功能树中选择要安装的内容 我只想有 将安装在本地硬盘上 和 整个功能将不可用 的选项 目前 除了这两个选项
  • ClickOnce 有哪些替代方案? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我用过单击一次 https en wikipedia org wiki ClickOnce多年来 我经历
  • 成功后动态改变EndDialog中的RTF内容

    多亏了这个question https stackoverflow com a 33679439 1076116 我能够执行自定义操作来临时更新和动态修改 MSI 数据库 简而言之 我正在做 CustomAction public stat
  • 我应该如何处理 WiX 安装程序中的产品升级?

    我有一个相当大的 WiX 安装程序 250 Mb 以上 我正在尝试制定合适的升级策略 安装程序中的大多数文件都不会更改 并且当只有一两个文件发生更改时 我们不希望分发整个包 我研究了主要和次要升级 我的理解是 如果产品 ID 发生变化 只要
  • Wix 安装程序 - 根据属性创建文件夹层次结构

    我在用Wix 3 6 http wixtoolset org 创建一个设置 我仍在不断学习 那里的信息仍然分散 我正在等待我的 Wix 开发人员指南书到达 我目前有一个自定义 UI 对话框 用户可以在其中输入一些应用程序配置 该配置的一部分
  • 如何编写自定义操作 DLL 以在 MSI 中使用?

    这是我打算自己回答的问题 但请随意添加其他方法来完成此任务 我正在打包一个应用程序以用于各种配置 并且我确定在 MSI 中执行自定义逻辑的最可靠方法是编写我自己的自定义操作 DLL 该 DLL 能够从 PROPERTY 表中读取 写入 终止
  • “应用变换时出错。验证指定的变换路径是否有效”的根本原因是什么?

    我有 MSI 安装程序 我正在使用 PowerShell 脚本安装和卸载它 当我卸载它时 我在 Azure 上创建的 Windows 2008 2016 服务器上收到以下错误 应用变换时出错 验证指定的转换路径是否有效 如果我使用非 Azu
  • 如何使用自定义操作在 WiX 中运行脚本 - 最简单的示例?

    WiX新手问题 我该怎么办1 将一次性 shell 脚本与安装程序一起复制到 temp e g
  • 使用帮助库管理器和 WiX 安装帮助

    我试图通过使用 WiX 运行 Sandcastle 帮助文件生成器在构建我的 Sandcastle 项目后创建的 HelpLibraryManagerLauncher 将我自己的帮助文件添加到 Visual Studio 2010 的帮助库
  • WiX Burn:从注册表读取 LaunchTarget

    我是 WiX 的新手 我试图让我的 Bootstrapper 在完成后启动我安装的应用程序 为了实现这一点 我正在使用
  • 自定义 WiX Burn 引导程序用户界面?

    我主要使用 WiX 3 6 创建一个安装包 这样我就可以利用Burn http en wikipedia org wiki WiX Burn引导功能 到目前为止 我已经将多个 MSI 软件包捆绑在一起 这些软件包将与内置引导程序应用程序一起
  • WiX - 通过检查修订来防止降级

    我正在寻找一种方法来防止我的应用程序降级 但 问题 是 我必须检查修订号 例如 安装 1 0 0 1 时应该可以安装 1 0 0 2 但安装 1 0 0 2 时不应该安装 1 0 0 1 我知道 Element MajorUpgrade 仅
  • WIX 自动生成 GUID *?

    假设我生成产品 ID 为 的 WIX XML 文件 另外 对于每个组件 GUID 我都使用
  • Burn in WiX 3.6 如何将 MSI 文件捆绑到 .exe 中?

    我有兴趣了解 WiX 如何捆绑使用 Burn 创建的 EXE 文件 我知道创建一个自解压 EXE 文件非常简单 我已经完成了一百万次了WinRAR http en wikipedia org wiki WinRAR EXE 文件解压到哪个目

随机推荐

  • HTML 视口中的中心图像(无 JavaScript)

    我想在浏览器中显示一张图像 如果图像小于浏览器视口 则图像居中 水平和垂直 如果图像大于视口 则图像会缩小以填充 尽可能多的视口而不调整纵横比 图像 同样 图像水平和垂直居中 I 不想使用 JavaScript 最好 最语义化的 HTML
  • 如何使用 Angular 指令捕获触摸事件

    我希望能够捕获用户在触摸设备上的一组 DOM 元素上移动手指的事实 此示例在桌面浏览器上运行良好 但在移动 Safari 中查看时不会触发所有预期事件 工作 Plunkr 演示移动 Safari 上的问题 http plnkr co edi
  • Nodejs 应用程序错误:使用 pm2 部署时绑定 EADDRINUSE

    快速应用程序部署pm2 https github com Unitech pm2 数据库是mongodb 当使用命令运行应用程序时 NODE ENV production pm2 start app js i max 经常有错误 绑定EAD
  • 如何配置 AutoMapper 以全局忽略所有具有不可访问 Setter 的属性(私有或受保护)?

    如何在不使用 IgnoreAllPropertiesWithAnInaccessibleSetter 的情况下自动忽略映射包 cfg CreateMap
  • Prestashop Web 服务返回 JSON

    经过互联网上的广泛搜索后 我确信 Prestashop 不会以 JSON 格式返回数据 它只以 XML 格式返回 不幸的是 这会导致跨域访问问题 现在 我正在尝试将 XML 由 Prestashop 返回 转换为 JSON 我想编写可以从
  • GIT_COMMITTER_DATE 无法识别

    这可能是一个非常简单的问题 但我试图修改 Git 提交的日期 但每当我尝试修改 Git 环境变量时GIT COMMITTER DATE or GIT AUTHOR DATE我收到这条消息 当我打字时git var l他们也不出现 我必须自己
  • Clang 是否为 WebAssembly 的 memory.fill 和 memory.copy 提供了内在函数?

    我正在用 C 语言开发 WebAssembly 模块 并一直在尝试利用memory fill and memory copy中定义的指令WebAssembly 规范 https webassembly github io spec core
  • 如何在不同的行上显示操作栏选项卡?

    我正在使用 ActionBarTabs 在活动中实现 3 个选项卡 选项卡在操作栏下方的纵向模式下正确显示当我切换到横向模式时 选项卡与操作栏放置在同一行 如何强制选项卡以横向模式单独显示 位于操作栏下方 我的代码是 protected v
  • 更改 WSO2 DAS 上的默认管理员密码

    安装 WSO2 数据分析服务器并更改默认管理员密码后 我收到以下错误 ERROR org wso2 carbon databridge agent endpoint DataEndpointConnectionWorker Error wh
  • 如何在 jQuery UI 对话框中显示 IFRAME

    我正在升级的 Web 应用程序使用 jQuery 和 jQuery UI 我已经替换了大多数实例window open and a target blank 与 jQuery UI 对话框 例如 用于在新窗口中打开的条款和条件 现在我将 j
  • 如何将多个 javascript 库与 browserify 捆绑在一起?

    我正在尝试在浏览器中使用 Browerifiy 如果我使用独立选项 它会公开一个模块 我不想这样做 在实际编译代码后 网站和文档似乎在我查看的所有地方都被切断了 没有人说如何实际使用浏览器属性中的代码 我有一个这样的艰巨任务 browser
  • WPF DataGridComboBoxColumn

    您好 我正在使用 WPF DataGrid 并且我正在尝试使 ComboBox Column 正常工作
  • 如何找到与模式匹配的文本?

    NOTE 这不是任何现有问题的重复 它旨在说明为什么这样一个极其常见且看似简单的问题无法回答 并提供指导 指导发布此类问题的人如何修改它们以使它们可以回答 这样我们就不必继续提供几乎每天评论中都有相同的指导 可以参考这个 给定以下输入文件
  • 正则表达式 - 如何查找单词和引用的短语

    我想说以下一串 Guiness Harp Holy Moses 这样在 C 或 VB 中就可以得到一个匹配集 Guiness Harp Holy Moses 本质上 它会在空格上分开 除非空格周围有引号 否则引号之间的那些单词将被视为单个短
  • 如何使用 JavaScript 从文本框控件中获取选定的文本

    我有一个文本框和一个链接按钮 当我编写一些文本 选择其中一些文本 然后单击链接按钮时 从文本框中选择的文本必须显示在消息框中 我该怎么做 当我单击下面文本框的提交按钮时 消息框必须显示洛雷姆 伊普苏姆 因为在区域中选择了 Lorem ips
  • PySpark:when 子句中的多个条件

    我想修改数据框列 年龄 的单元格值 其中当前为空白 并且只有当另一列 幸存 的相应行的值为 0 年龄为空白 时 我才会执行此操作 如果 Survived 列中为 1 但 Age 列中为空 那么我会将其保留为空 我尝试使用 运算符但它不起作用
  • 如何使用 pyPdf 反转 pdf 文件中的页面顺序?

    我有一个 pdf 文件 myFile pdf 我想使用反转其页面的顺序pyPdf http pybrary net pyPdf How from pyPdf import PdfFileWriter PdfFileReader output
  • Doctrine ORM:使用接口作为不同实体的关系?

    学说中多对多关系中如何使用接口 在我的应用程序中有 3 个实体 用户 汽车和司机 用户可以将汽车和司机添加为收藏夹 所以我做了这个结构 简化 用户 最喜欢的功能 namespace Acme AppBundle Entities use A
  • Jsoup.connect() 适用于 Java,不适用于 Android

    我已经尝试过Jsoup connect Jsoup 网站上给出的示例 它在 Java 中运行良好 由于某种原因 即使我在我的项目中允许互联网访问权限 我也无法使其在 Android 项目 Eclipse 中工作AndroidManifest
  • 将命令行参数从 WiX 包传递到 MSI

    我使用的是 Wix 3 7 我有一个 MSI 我想设置一个注册表项 可能通过自定义操作 因为他必须检查该注册表项是否已存在 据我所知 引导程序项目中的捆绑包无法更改计算机状态 例如设置注册表 因此 我尝试通过传递命令行参数