在Installshield中为文件成本核算添加可选缓冲区

时间:2015-11-18 16:36:38

标签: windows-installer installshield

我正在为具有相当大的运行时磁盘空间要求(1.5 Gb)的应用程序编写安装程序(Installshield 2013 basic MSI)。该空间用于可以在用户计算机上的任何硬盘驱动器上的记录文件。在设置时,我希望安装程序:

  • 检查所选驱动器上的录制文件是否有足够的空间。如果没有,请阻止安装并让用户更改目标驱动器。 (这有效)
  • 检查安装后是否至少留有(某些最小空间,比如500Mb)。如果没有,建议更改目标驱动器,并让用户可以更改目标驱动器或继续。 (这是我奋斗的地方)

有没有可以计算出文件成本计算后一个驱动器上剩余多少空间?在Windows安装程序中似乎没有任何关于此信息的变量。

实施例: 让我们说录音文件是1GB,我想要一个500Mb的缓冲区。如果有

  1. 小于1 Gb free:要求用户更改目标驱动器
  2. 在1Gb和1.5之间:警告用户,允许更改目标驱动器或继续
  3. 高于1.5Gb:继续安装。
  4. 我做了什么:我将一个ReserveCost元素与我的录音文件组件相关联,并正确处理下面的案例1和3。如何处理案例#2?

1 个答案:

答案 0 :(得分:0)

这是Windows Installer ReserveCost Table的用途。 MSI会自动计算成本,但您可以通过此表给予额外的权重。要在InstallShield中访问此表,请使用直接编辑器。

这里有一个半开的想法,你可以扩展。也许你可以创建一个可选的"功能"除了有一个保留500mb空间的组件之外没有什么重要的。那么也许你可以计算出你的UI体验,让你的用户可以轻松打开和关闭它,以便有机会重新进行重新演绎并继续使用空间。

我不相信我喜欢这种经历,但它是我能想到的最好的。