Wix:动态添加功能

2024-05-08

我们正在使用 Wix 为我们的软件构建 msi。我们有一些要在目标机器上实现的组件(插件)。每个客户端的插件都不同。我们想要做的是创建一个标准构建并修改 msi 包中的功能列表。有没有办法通过自定义操作动态更改功能列表? (例如,从自定义操作中读取可用插件,并相应地将一些条目添加到 msi 功能列表中)?

非常感谢任何评论、建议、想法。


我过去曾做过一个技巧,即使用外部 CAB(每个功能 1 个)构建 MSI,然后使用自定义操作来验证 CAB 是否存在。如果它们不存在,您将隐藏该功能。这样,您只需构建一次安装程序,然后将其交付给具有不同功能集的客户。

顺便说一句,我相信 InstallAware 本身就支持这个故事。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Wix:动态添加功能 的相关文章

  • 对于 msiexec,这些定向到安装程序的不同方法有什么区别?

    我有一个简单的问题 我只找到了两种实际运行我的 msi 文件的方法 但它们都不起作用 密切关注我的使用情况 and 简而言之 我想要一种方法来做到这一点 Basics PSScriptRoot Start Process msiexec e
  • WiX:如果虚拟目录包含嵌套目录,如何跳过删除 iis:WebVirtualDir?

    我的msi安装和卸载共享资源 IIS虚拟目录 MyTeamServices 它工作得很好 除了在卸载过程中删除该虚拟目录 即使有人创建了嵌套虚拟目录 不是通过使用安装程序 只是 手动 当我期望看到 WiX 处理 HDD 文件夹的标准行为时
  • 无法再卸载 Visual Studio 2017

    我在运行最新的 VS2017 时遇到了严重的问题 因为在我升级它时它进入了不一致的状态 有一些残留的软件包拒绝卸载 因为它们显然缺少来自的缓存文件C Windows Installer文件夹 我从来没有碰过那个文件夹 然而 我确实移动了C
  • MSI 与 nuget 包:哪个更适合持续交付?

    我们来讨论一下下面的话题 目前有一个应用程序正在使用熟悉的 xcopy 方法进行部署 这种方法使得管理依赖项 文件更新等变得困难 有一个想法是在一些软件包的帮助下开始应用程序部署 就像在 Linux 中借助RPM http en wikip
  • 无法使用 WiX 安装程序创建注册表项值

    以下组件按预期执行所有操作 但无法写入最后一个注册表项值 我没有收到任何错误
  • 使用自定义操作卸载多个产品

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

    我经常遇到 Windows Installer 尝试卸载软件包的问题 但它抱怨 您尝试使用的功能所在的网络资源不可用 当原始 MSI 根本不可用时 是否有已知的方法可以卸载此类软件包 请注意 微软现在已经发布了一个官方工具来解决这些问题 并
  • ClickOnce 有哪些替代方案? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我用过单击一次 https en wikipedia org wiki ClickOnce多年来 我经历
  • 在wix中,使用vbscript,如何写入日志文件?

    我正在自定义操作中尝试以下操作 Session Log GetOfficeBitness Session Property OfficeBitness 我收到错误 错误 1720 此 Windows Installer 程序包有问题 A 无
  • 成功后动态改变EndDialog中的RTF内容

    多亏了这个question https stackoverflow com a 33679439 1076116 我能够执行自定义操作来临时更新和动态修改 MSI 数据库 简而言之 我正在做 CustomAction public stat
  • 如何从命令行列出已安装的 MSI? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我们最近将 Windows 软件包从 RPM cygwin 切换到 MSI wix 拥有原生包装是一个非常受欢迎的变化 我们打算坚持下去 然而 MSI
  • 使用 Visual Studio 安装项目设置 InstallPath 注册表项

    我正在使用使用 Visual Studio 安装项目设计的 msi 安装程序来部署我的应用程序 如何将注册表项设置为应用程序的安装路径 实际上 当我在寻找同样的东西时 还提到了以下解决方案 在注册表项中使用 TARGETDIR
  • Windows 安装程序和安装应用程序合并到一个文件中?

    我使用 Visual Studio 在 C 中编写了一个应用程序 我创建了一个项目设置文件 该文件在我的调试中为我创建了文件 Windows Installer 和安装应用程序都是必需的 但我想将它们合并为一个 就像当您下载应用程序时 安装
  • 使用 WiX 将程序集放入 GAC 和安装路径中

    我刚刚开始学习如何使用 WiX 但遇到了障碍 我的软件包使用第三方库 该库要求 GAC 和软件包安装目录中都存在一些文件 使用 WiX 我可以使文件显示在安装目录或 GAC 中 但不能同时显示在两者中 有什么办法可以解决这个问题吗 这里有一
  • 如何创建 heat.exe 收集的文件的快捷方式?

    使用 WiX Toolset 3 10 并尝试创建已使用 WiX Toolset 收获的某些文件的快捷方式heat exe效用 如 WIX bin heat exe dir SourceDir nologo platform x64 ke
  • WIX MSI 软件包卸载

    我正在使用 WIX 作为安装程序包 当我通过双击原始 msi 包卸载该包时 一切都很好 当我从控制面板卸载时 它会给我一个最小的用户界面卸载 我已在 MSI 中写入一个自定义操作 询问用户是否要卸载某些数据库等 最小 UI 卸载时不会发生这
  • Google Cloud SDK 安装失败 UnicodeDecodeError:“ascii”编解码器

    我在安装时遇到以下错误谷歌云SDK https cloud google com sdk docs 在我的 Windows 10 计算机上 ERROR gcloud failed to load ascii codec can t deco
  • WIX 自动生成 GUID *?

    假设我生成产品 ID 为 的 WIX XML 文件 另外 对于每个组件 GUID 我都使用
  • 如何在安装过程中运行“.bat”文件?

    在安装项目中 诸如 exe dll js vbs 之类的可执行文件是可以接受的 但无法运行 bat自定义操作中的文件 问题是如何运行 bat安装过程中的文件 好吧 经过大量搜索和反复试验 我解决了这个问题 我不确定这是否是最好的方法 但它确
  • 在每台计算机安装中删除 HKCU 下的注册表项

    我使用 WiX 3 6 构建了一个 perMachine 安装程序来安装我尚未开发的软件 不幸的是 该软件在执行期间在 HKCU 下创建了一些注册表项 卸载时 还应删除自行创建的密钥 移除这些钥匙似乎并不那么容易 我正在与 ICE57 和

随机推荐

  • ModuleNotFoundError:没有名为“模型”的模块

    我有一个非常简单的 django 应用程序 我试图将其部署到 heroku 但它不断崩溃 在我的本地机器上一切正常 但在 Heroku 上却不行 这是我收到的错误 切到相关部分 File app hello admin py line 4
  • React Native 循环这个

    当我把onPress在地图循环中 它不起作用 如何修复它 var PageOne React createClass handlePress this props navigator push id 2 render return
  • 将值数组附加到 React JS 中某个状态的当前数组

    我的状态值为 this state emp id 1 name A id 2 name B id 3 name B 我怎样才能添加一个像这样的数组var arr id 4 name D 给国家emp而不删除数组的当前值 我只想将新的值数组附
  • TryXXX 类似带有“out”参数的方法与返回可为空值类型的方法?

    我经常在 C 中看到这样的方法 进行可能会或可能不会给出结果的计算 bool TrySomething SomeType inputData out SomeOtherType result 为什么人们不使用这样的东西呢 Nullable
  • HashMap 无法转换为 java.lang.string

    我正在尝试从列表视图中获取值 列表视图由hashmap类型的数组列表设置 因此 如果我尝试获取字符串中的值 则会出现错误HashMap cannot be cast to java lang string 详细信息1 java packag
  • 不使用修剪方法从字符串中删除空格?

    给定的字符串是 家 甜蜜的家 如果用户输入模式为 0 那么 o p 应该是 home sweet home 如果用户输入模式为 1 那么 o p 应该是 Do this https stackoverflow com questions 5
  • Android Gradle 构建缓慢

    我试图找出为什么我们的 Gradle 构建如此缓慢 目前 每次您在不进行任何更改的情况下进行构建时 构建时间约为 45 秒 这是一个单模块项目 我已经打开了分析 大部分时间都花在了 app dexDebug 我们使用 Gradle 2 8
  • 如何在Python中连接两个整数?

    如何在Python中连接两个整数 例如 给定10 and 20 我想要一个返回值1020 将两者都转换为字符串 连接字符串 然后将结果转换回整数 z int str x str y
  • 从开放的 HTTP 流中读取数据

    我正在尝试使用 NET WebRequest WebResponse 类来访问 Twitter 流 API 此处 http stream twitter com spritzer json 我需要能够打开连接并从打开的连接中增量读取数据 目
  • PHP文件上传错误tmp_name为空

    我的文件上传遇到这个问题 我尝试在检查验证时上传 PDF 文件TMP NAME是空的 当我检查时 FILES document attach error 该值为 1 意味着存在错误 但当我尝试上传其他 PDF 文件时 它已成功上传 为什么其
  • CollapsingToolbarLayout setTitle() 不会更新,除非折叠

    使用新的设计库 我们应该在CollapsingToolbarLayout 不是Toolbar本身 至少在使用折叠工具栏时 但setTitle 仅在以下特定情况下更新标题 当 的时候CollapsingToolbarLayout还没有标题 此
  • 帮助理解 gluLookAt()

    想象一下你站在地上 抬头看着天空中的一个立方体 当你倾斜头部时 立方体就会移动 我试图在 iPhone 上使用 OpenGL ES 来复制这一点 方法是操纵相机的倾斜 同时查看围绕原点绘制的简单 3D 立方体 我正在使用gluLookAt
  • 如何使用 CocoaPods 正确安装 ReactiveCocoa?

    我很新ReactiveCocoa 我尝试安装ReactiveCocoa几天前通过CocoaPods 这是我的podFile platform ios 7 0 pod ReactiveCocoa 使用后pod install我这里有日志文件
  • 一旦组件被销毁,在 initComponent 函数中创建的存储是否会发生内存泄漏,或者这些存储是否会被垃圾收集?

    这是从另一个问题中衍生出来的一个问题 在 ExtJS 4 中具有相同视图并多次存储的最佳实践 https stackoverflow com questions 27333787 best practice to have the same
  • “GTLDriveFile”类型的值没有成员“downloadUrl”

    我正在关注这个tutorial https developers google com drive ios devguide files我正在尝试用 Swift 来做这件事 The file对象没有downloadUrl财产 我不明白为什么
  • 获取Python中匹配字符串的特定模式后出现的数字

    我想获取所有匹配的数字 仅数字示例 0012 22 或包含与其对应的某些文本 示例 RF332 的数字 该数字与提供的字符串列表匹配 代码中的 my list 带有数字的文本的显示格式类似于用一两个空格分隔 提供示例输入文件以供参考 这是输
  • has_many 关系的动态 class_name

    我正在尝试与动态 class name 属性建立 has many 关系 class Category lt ActiveRecord Base has many ads class name gt lambda return self i
  • 如何找到最长的回文子序列(不是它的长度)

    我想找出字符串中最长的回文子序列 我到处都找到了找出子序列长度的算法 并声明该算法也可以扩展以返回子序列 但我没有找到如何实现的 有人能解释一下我怎样才能得到序列吗 既然你提到了链接最长回文子序列 http www geeksforgeek
  • http压缩和url压缩有什么区别?

    查看 Web config 中的节点 我发现它允许 httpCompression 和 urlCompression 元素 两者有什么区别 我只想执行标准 gzip 我应该使用哪一个 url压缩指定what压缩和http压缩表示how进行压
  • Wix:动态添加功能

    我们正在使用 Wix 为我们的软件构建 msi 我们有一些要在目标机器上实现的组件 插件 每个客户端的插件都不同 我们想要做的是创建一个标准构建并修改 msi 包中的功能列表 有没有办法通过自定义操作动态更改功能列表 例如 从自定义操作中读