使用CopyFiles而不是File命令进行NSIS递归文件复制

mda*_*299 1 installer nsis

对于NSIS安装程序,我一直在使用此命令:

SetOutPath $INSTDIR\data
File /r /x *.svn data\newTerrainTiled
Run Code Online (Sandbox Code Playgroud)

将我的数据文件复制到可执行文件本身.我现在有一个更大的数据集,已经超出了安装程序可执行文件的最大大小.我试图将我的代码更改为:

SetOutPath $INSTDIR\data
CopyFiles /r $EXEDIR\data\newTerrainTiled
Run Code Online (Sandbox Code Playgroud)

但显然CopyFiles没有递归标志.我意识到我可以逐个创建newTerrainTiled文件夹的子目录,然后使用带有通配符(*)字符的CopyFiles.我想知道当数据集变大时,是否有人已经提出了使用CopyFiles代替File的递归复制方法.

谢谢.

And*_*ers 8

  • File指令将您正在编译的系统中的文件打包到安装程序中.
  • CopyFiles将文件和/或文件夹从a到b复制到最终用户系统上!(也就是说,源和目标都在最终用户系统上,并且在复制之前实际上必须存在源文件)

CopyFiles可以复制一个目录(包含所有文件和子文件夹),但在您的情况下,只有当数据目录与安装程序一起放在CD/DVD上时才有用.

其他替代方案是:

  • 将数据文件放在外部存档(zip等)中,并使用其中一个NSIS插件进行提取.
  • 将数据附加到生成的安装程序的末尾并解压缩("无限制"文件大小)