2014-09-04 77 views
0

例如我在D:\ Project \ InstallerPro \ Platform \ Windows8 \ Web.config中有一个配置文件 我需要将该文件移动到D:\ Project \ InstallerPro \网络\配置\ Web.config文件如果Windows版本之后,安装程序会从NSI脚本d产生的窗口8在将文件包含在安装程序包中之前复制文件NSIS

:\项目\ InstallerPro \ PROinst.nsi

是否有可能复制使用NSIS将它编译为安装程序之前(不是手动)文件?

我想要做这样的事情:

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

回答

0

CopyFiles是一个运行命令,即命令,将安装程序执行过程中,而不是在安装程序创建运行。

你可以使用已安装程序的编译过程中执行的!system命令,如:

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

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

+0

谢谢你的答案@Seki,我想知道是不是把复制代码放在脚本里面还是放在C#应用程序中更好?因为我有一个C#应用程序,用于根据用户的偏好编译不同的安装脚本。 – currarpickt 2014-09-05 02:44:53

+0

@currarpickt:我会说这取决于你的需要。除了删除文件,执行系统命令之外,NSIS在编译时可以执行的命令非常有限...(参见[编译时间命令](http://nsis.sourceforge.net/Docs/Chapter5.html))如果你的预处理工作流程需要详细的步骤,最好将它保存在一个独立的程序/脚本比nsis脚本更具表现力。在这里,我需要刷新SVN仓库,并在安装编译后执行一些测试和通知,并使用一些外部Perl脚本,其中NSIS编译是其中一个步骤。 – Seki 2014-09-05 06:10:11