提高 Wix msi 安装/卸载的性能

2023-11-21

在Windows 7(即MSI 5.0)中,有一个属性称为快速安装这将提高安装程序的性能。或者,您可以通过设置属性 DISABLEROLLBACK 来关闭回滚选项。此属性在早期版本的 MSI 5.0 中也可用。

请分享您的知识以改善安装体验。另外,我找不到提高卸载性能的正确方法。我们使用大量文件/文件夹(超过 70,000 个)和 35000 个组件。它挂在文件成本计算过程中,并且不知道如何避免这种延迟。有时它会挂起超过 2 或 3 小时才能在 XP 或 Vista 计算机中卸载

Edit:正如克里斯托弗所说,我通过压缩具有巨大文件集的文件夹并减小了组件大小,对安装进行了一些修改。它极大地提高了性能。是的,当然,我通过执行此概念丢失了 MSI 安装程序模式,并且不推荐使用这种方法。然而,当我们想要实现这一点并且我们的用户在卸载/升级补丁时确实不希望获得文件版本详细信息时,这是一种权衡。


我也遇到过类似的情况,不过文件数量少了一点,大约25k。这些文件大部分都是图标,从一个版本到另一个版本从未改变过。只有主要版本(每两年一次)可能会给该领域带来一些变化。一个“快速而肮脏”的解决方案是压缩这些图标并将这个单个文件包含到安装中(不是组件,只是与 MSI 并排的文件)。在安装过程中,该 ZIP 在后台线程中提取,RemoveFile 表用于在卸载时删除图标。它比将这 20k 图标安装为单独的组件(即使是包含许多文件的组件)要快。一个好的、正确的解决方案是说服主要应用程序开发人员将所有这些 20k 图标放入 20 个 zip 存档中。现在,这 20 个 zip 文件作为常规 MSI 组件安装,并且应用程序知道如何按需提取图标并缓存它。

我不建议您禁用回滚。尽管您将节省相当多的安装时间,但您会失去标准的有保证的回滚选项。

由于再次回滚功能,卸载比安装需要更多时间。据我了解,当您卸载时,MSI 首先创建每个文件的副本,然后卸载每个文件,如果成功,则删除每个备份文件。因此,卸载时间大约是安装时间的三倍。当我采用默认选项每个组件有 1 个文件时,我遇到了同样的问题。尽管建议这样做,但如果您处理的是未决案件,则应该做出权衡。

希望这能为您解决一些问题。

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

提高 Wix msi 安装/卸载的性能 的相关文章

  • 在hibernate统计中,load和fetch之间有什么区别

    我主要看EntityStatics http www hibernate org hib docs v3 api org hibernate stat EntityStatistics html http www hibernate org
  • Visual Studio 2010 与 SQL Server 2012 商业智能的正确安装顺序

    我有一个 Windows 7 64 位 旗舰版 虚拟机 想要安装以下内容 Visual Studio 2010 Ultimate SQL Server 2012 Business Intelligence with SSIS and SSR
  • 从视频创建缩略图 - 提高速度性能 - AVAsset - iPhone [重复]

    这个问题在这里已经有答案了 我正在使用基于以下线程中的代码的代码来生成视频缩略图 从 iPhone SDK 中的视频 URL 或数据获取缩略图 https stackoverflow com questions 1347562 gettin
  • 嵌套辅助函数和性能

    嵌套辅助函数对于使代码更易于理解非常有用 谷歌甚至建议在他们的应用程序中使用嵌套函数时尚指南 https google styleguide googlecode com svn trunk javascriptguide xml Nest
  • 磁盘寻道时间测量方法

    我编写了一个脚本来测量 HDD 上的寻道时间 并且其完成方式的微小变化会导致显着不同的时间 第一个周期在磁盘开头的区域内进行跳转 第二个周期选择磁盘上执行查找的随机区域 相同大小 这种方法显然不同 但我不明白为什么它会改变结果 请注意 对于
  • 在Python列表中交换元素的最快方法

    在Python中交换两个列表元素是否有比 L a L b L b L a 或者我必须求助于Cython http cython org or Weave http www scipy org Weave或类似的 看起来 Python 编译器
  • WiX:如何立即重新启动explorer.exe?

    我是软件打包方面的初学者 我正在使用 cpack Wix 我试图找到有关的有用信息或良好文档util 重启资源 但找不到我的问题的任何答案 Issue 我必须安装一个 ShellExtension 它需要在设置一些注册表值后重新启动 exp
  • 如何加速Python中的N维区间树?

    考虑以下问题 给定一组n间隔和一组m浮点数 对于每个浮点数 确定包含该浮点数的区间子集 这个问题已经通过构建一个解决区间树 https en wikipedia org wiki Interval tree 或称为范围树或线段树 已经针对一
  • Python 3.6.1 安装位置

    我在 Ubuntu 16 服务器上安装了 Python 3 6 1 但找不到安装位置 我查看了 usr bin 其中提到了除 3 6 1 之外的所有其他版本 在哪里可以找到该版本的可执行文件 使用命令 whereis python3 6 1
  • 为什么.NET Framework 4.0安装程序的大小小于3.0/3.5?

    我看到 Net Framework 4 0的beta2安装程序只有55MB 而 Net 3 5的安装程序有200 MB 这是怎么回事 NET 3 5 之所以这么大 是因为它在同一个包中包含 x64 版本的框架 2 0 3 0 软件包针对 x
  • Tensorflow 导入错误:没有名为“tensorflow”的模块

    我在 Windows Python 3 5 Anaconda 环境中安装了 TensorFlow 验证成功 有警告 tensorflow C gt python Python 3 5 3 英特尔公司 默认 2017 年 4 月 27 日 1
  • 为什么 Python 中的无分支函数和内置函数速度较慢?

    我发现了 2 个无分支函数 它们可以在 python 中查找两个数字的最大值 并将它们与 if 语句和内置 max 函数进行比较 我认为无分支或内置函数将是最快的 但最快的是 if 语句函数 有人知道这是为什么吗 以下是功能 If 语句 2
  • JSON.stringify 对于大型对象来说非常慢

    我在 javascript 中有一个非常大的对象 大约 10MB 当我对其进行字符串化时 需要很长时间 因此我将其发送到后端并将其解析为一个对象 实际上是带有数组的嵌套对象 这也需要很长时间 但这不是我们在这个问题中的问题 问题 我怎样才能
  • Google Cloud SDK 无法安装“.exe;.bat;.com”不是可识别的命令

    我正在尝试在 Windows 10 笔记本电脑上安装 google cloud SDK 我尝试删除安装文件夹中的空格 并将路径添加到我的环境变量中 完整的错误是 Output folder C Users user Documents Do
  • 高效秒表

    您好 我正在用 javascript 编写一个秒表实用程序 我有一个关于效率和开销的问题 我考虑过两种制作秒表的方法 1 存储开始日期并不断测量自该日期以来经过的毫秒数 2 创建一个整数并按设定的时间间隔递增其值 我想知道哪个最有效 另外
  • 为什么动态 qml 对象的创建如此缓慢,有哪些合理的替代方案?

    我想要实现的目标类似于棋盘游戏 有一个100 100的网格 放在一个Item它驻留在一个Flickable 游戏板 的各个矩形都是 svg 图像 目前大约有 20 种 可能会增加到数百种 作为基准测试 我只是尝试用元素填充 世界 Compo
  • 数组与列表的性能

    假设您需要一个需要频繁迭代的整数列表 数组 我的意思是非常频繁 原因可能有所不同 但可以说它位于大容量处理的最内层循环的核心 一般来说 人们会选择使用列表 List 因为它们的大小具有灵活性 最重要的是 msdn 文档声称列表在内部使用数组
  • 通过命令行安装“Compass”收到错误“extconf 失败,退出代码 1”

    找不到这个问题的答案 运行 OS X Yosemite Beta v2 遵循指南针安装指南时 请确保您的 gem 是最新的 gem update system Then run gem install compass 假设您的安装因与我相同
  • 快速查询最新记录的方法?

    我有一张这样的表 USER PLAN START DATE END DATE 1 A 20110101 NULL 1 B 20100101 20101231 2 A 20100101 20100505 在某种程度上 如果END DATE i
  • 在 Visual Studio 的 InstallShield 中创建 setup.exe

    Please tell me whether it is possible to create a file named setup exe I want to have the end user to a single file inst

随机推荐