Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 复制文件,然后将其包含在安装程序包NSIS中_File_Copy_Nsis - Fatal编程技术网

File 复制文件,然后将其包含在安装程序包NSIS中

File 复制文件,然后将其包含在安装程序包NSIS中,file,copy,nsis,File,Copy,Nsis,例如,我在D:\Project\InstallerPro\Platform\Windows8\Web.config中有一个配置文件 如果windows版本是windows 8,我需要将该文件移动到D:\Project\InstallerPro\Web\Configuration\Web.config 之后,将从D:\Project\InstallerPro\PROinst.nsi中的nsi脚本生成安装程序 在使用NSIS将文件编译到安装程序之前,是否可以复制文件(非手动) 我想这样做: Copy

例如,我在D:\Project\InstallerPro\Platform\Windows8\Web.config中有一个配置文件 如果windows版本是windows 8,我需要将该文件移动到D:\Project\InstallerPro\Web\Configuration\Web.config

之后,将从D:\Project\InstallerPro\PROinst.nsi中的nsi脚本生成安装程序

在使用NSIS将文件编译到安装程序之前,是否可以复制文件(非手动)

我想这样做:

CopyFiles ".\Source\Platform\Windows8\Web.config" ".\Source\WEB\Configuration\Web.config"

CopyFiles
是一个运行时命令,即将在安装程序执行期间而不是在安装程序创建期间运行的命令

您可以使用
!编译安装程序期间执行的系统
命令,例如:

!system `copy "c:\Source\Platform\Windows8\Web.config" "c:\Source\WEB\Configuration\Web.config"`

您需要使用绝对路径,因为当前工作目录来自
makensis.exe
,而不是来自正在编译的脚本。

谢谢您的回答@Seki,我想知道是将副本代码放在脚本中还是放在C应用程序中更好?因为我有一个C#应用程序,用于根据用户的偏好编译不同的安装程序脚本。@currapickt:我想说这取决于您的需要。NSIS在编译时执行的命令非常有限,除了删除文件、执行系统命令。。。(请参阅)如果预处理工作流需要详细的步骤,最好将其保存在一个单独的程序/脚本中,该程序/脚本比nsis脚本更具表现力。在这里,我需要在安装编译之前刷新SVN repos,并在安装编译之后执行一些测试和通知,我使用一些外部Perl脚本,其中NSIS编译是其中的一个步骤。