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

Performance 提高Wix msi安装/卸载的性能,performance,wix,windows-installer,installation,uninstallation,Performance,Wix,Windows Installer,Installation,Uninstallation,在Windows 7(即MSI 5.0)中,有一个名为的属性,它将提高安装程序的性能。或者,您可以通过设置属性DISABLEROLLBACK来关闭回滚选项。此属性在早期版本的MSI 5.0中也可用 请分享您的知识以改进安装体验。此外,我也找不到提高卸载性能的正确方法。我们使用大量的文件/文件夹(超过70000个)和35000个组件。它挂起在文件成本计算过程中,不知道如何避免这种延迟。有时,在XP或Vista机器上卸载时,它会挂起2到3个多小时 编辑: 我在安装过程中做了一些修改,压缩了文件夹,这

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

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

编辑:
我在安装过程中做了一些修改,压缩了文件夹,这些文件夹有巨大的文件集,并减少了组件的大小,就像克里斯托弗说的那样。它大大提高了性能。是的,当然,我失去了MSI安装程序模式这样做的概念,这是不推荐的方法。但是,如果我们想实现这一点,并且我们的用户在卸载/升级修补程序时确实不想知道文件版本的详细信息,那么这是一种折衷办法。

提高应用程序性能的最佳选择是减少文件和组件的数量。虽然您可以对MSI进行一些调整以提高性能,但过多的文件/组件是核心问题,并且将成为您所做的任何性能改进的门控因素。为什么需要安装70k个文件?

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

我不建议您禁用回滚。虽然可以节省大量安装时间,但您失去了一个标准的有保证的回滚选项

由于再次使用回滚功能,卸载比安装花费的时间更长。按照我的理解,卸载时,MSI首先创建每个文件的副本,然后卸载每个文件,如果成功,则删除每个备份文件。因此,卸载时间大约是安装时间的三倍。当我选择一个默认选项,即每个组件有一个文件时,我也遇到了同样的问题。虽然这是建议,但如果你处理的是未决案件,你应该做出权衡


希望这能帮你解决一些问题。

谢谢你的回复。我将尝试减少组件因子以减少它。我需要为教程提供如此大量的html文件和图像。我的典型安装中有大约15000个文件,这些是客户端应用程序。在游戏行业,很容易安装大量文件。在服务器端(尤其是web应用程序),很容易进入成千上万的应用程序。我曾经观察到,仅仅向web客户端添加基础设施就可以添加5500多个文件。任何试图对web应用程序进行收缩包装的人都可能很快找到高度复杂且规模庞大的安装程序。想想微软提供的“自托管”MSDN网站。Yan,我真的很感激你的回答,它让我对这个概念更加清楚。在我的例子中,回滚选项是不必要的,到目前为止,我从未遇到过需要回滚选项的情况。无论如何,我会尝试所有你们的建议。在这种情况下,缓存的图标文件是Windows安装程序没有安装的文件,并且对此一无所知。因此,它可以是一组
RemoveFile
/
RemoveFolder
元素,也可以是一个自定义操作。我更喜欢第一种变体。