2016-08-03 36 views
4

我们有一个包含多个组件的安装程序,每个组件都有自己的部分。我试图找出我们现有的代码实际上如何设置每个部分的大小。我们有3个组件,如果选中/取消选中,将更新组件页面上的“空间需求”值。NSIS如何自动设置节的大小要求?

我现在添加的新部分不会更新此值。在我们现有的代码中,我无法找到的是实际设置的位置。

我做了一些研究,发现这个帖子下面有用户说“大小自动设置”。但是如何? https://nsis-dev.github.io/NSIS-Forums/html/t-291064.html

我抬头的NSIS文档,看到一些方法来设置此,包括:

  • AddSize
  • SectionSetSize

你甚至可以使用CopyFiles设置的估计大小文件然后可以由安装程序使用。

我搜索了我们的NSIS目录中的所有上述方法,并且无法获得AddSizeSectionSetSize的任何结果。我也没有看到CopyFiles的任何实例,开发人员以千字节为单位添加了估计的空间。是否有一些NSIS魔术可以自动设置这个尺寸,我不知道?

回答

4

NSIS根据该部分中的File指令自动设置部分的大小。

AddSize可以使用,如果您知道您正在执行一些也使用磁盘空间的外部操作。如果在进行某种类型的计算后才知道在最终用户系统上运行时的大小,则可以在运行时使用SectionSetSize

+0

谢谢!这有帮助!我们确实有文件说明。但是,他们住在一个函数里面,这个函数在两个地方被本节调用。我猜如果文件指令不直接在节内,NSIS不能计算节的大小。我移动了函数之外的逻辑,现在尺寸正确计算。 – SpartaSixZero