WiX安装程序占用太多磁盘空间。如何使用我的安装程序避免磁盘蔓延

时间:2013-11-15 23:09:04

标签: wix windows-installer disk

我在几年内一直在研究一组安装程序,并且在安装软件包时遇到的磁盘空间问题开始出现问题。安装程序运行良好,但在此过程中安装/复制一些冗余文件集。我承认我的一些假设可能不正确,但这是基于我对MSI过程的最佳理解。让我解释一下......

1。)自提取程序文件 - 创建第1组冗余文件的用户下载压缩的MSI,关联的引导程序包和setup.exe文件。没什么大不了的,因为这可以在安装后轻松删除。

2。) Extracted Files文件夹 - 运行EXE后,文件将被解压缩到启动引导程序的静态位置。现在,这已在硬盘驱动器上创建了第二组未压缩的冗余文件。这些文件对于能够根据需要重新安装调试安装很有用,但在安装完成后可能不需要。我从来不清楚修补安装是依赖于这些文件还是只依赖于存储在C:\ Windows \ Installer中的文件。假设后者。

3。) TEMP文件夹 - 当安装程序从提取的位置运行时,它会将文件复制到TEMP文件夹并从该位置运行文件。这将创建第3组冗余文件。同样不清楚这些文件是否可以在安装后删除,或者是否存在MSI实现的自动化过程。

4.。 Windows \ Installer文件夹 - 如果我理解正确,这是存储某种剥离文件集的地方,用于管理修补程序的能力。所以这是第四组文件,可能会或可能不会小于一些提取的文件集。这个不需要删除,所以修补工作。

5.。安装文件夹 - 软件的最终安装位置。这是现在安装到我的计算机的第5组文件,当然也是所需的文件集。

我想更好地理解这个过程,这样我就可以改进我分发软件的方式,这样我就可以避免或解决一些我需要很多不同文件的问题。我对那些可能没有观察到的最佳实践持开放态度。谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

我无法与您正在使用的确切引导程序对话,但您可能会调查使用WiX v3.8中的Burn引导程序来创建程序包。我知道它是如何工作的细节,它将减少您现在所经历的副本数量。

  1. 自提取文件 - 一个包可以包含单个可执行文件中的所有文件,也可以根据需要从Internet下载。在后一种情况下,自提取器文件可能是~250K。

    当然,只要安装完成,就可以删除它。

  2. 包缓存 - 刻录引擎会小心地将文件下载到TEMP位置,验证其完整性并将其移动到众所周知的包缓存中,而不会创建任何其他重复项。包缓存很重要,因为Windows Installer可以进入需要原始源文件的情况。如果该位置位于已删除的TEMP位置,则用户将很难提供原始源文件。包缓存还提高了安装的可靠性。最后,它是一个缓存,因此*可以*被删除(虽然不推荐),下一次执行Bundle会将必要的包放回缓存中。

    此外,此内容是原始源媒体,仍可以压缩。

  3. Windows \ Installer文件夹 - Windows Installer将缓存.msi文件。如果你没有在.msi文件中嵌入cabinet文件(这在使用Bundle时是不必要的,因为Bundle可以根据需要嵌入所有文件),那么缓存的.msi文件应该少于几兆字节。

  4. 安装文件夹 - 这是您的应用程序,您可能需要这些文件。 :)

  5. 因此,最后使用Burn引擎最终会得到一个未压缩的副本(应用程序本身),一个压缩的副本(包缓存),以及缓存的.msi文件的一小部分开销。