Nsis 在运行时设置变量

Nsis 在运行时设置变量,nsis,Nsis,我正在制作一个NSIS脚本,用于检查是否安装了以前版本的应用程序。如果是的话,它会询问是否应该从以前的版本导入配置文件。因此,我有一个全局变量配置文件,我试图在运行时根据用户选择“是”还是“否”来设置它。我遇到的问题是,编译它时会抱怨文件:“${XMLConfigDir}*.xml”->找不到任何文件。因为XMLConfigDir尚未设置。那么,在运行时是否仍要设置变量?声明变量(Var命令)和符号(使用!define命令定义)之间存在差异: 试试这个: !define XMLConfigDir

我正在制作一个NSIS脚本,用于检查是否安装了以前版本的应用程序。如果是的话,它会询问是否应该从以前的版本导入配置文件。因此,我有一个全局变量配置文件,我试图在运行时根据用户选择“是”还是“否”来设置它。我遇到的问题是,编译它时会抱怨文件:“${XMLConfigDir}*.xml”->找不到任何文件。因为XMLConfigDir尚未设置。那么,在运行时是否仍要设置变量?

声明变量(Var命令)和符号(使用!define命令定义)之间存在差异:

试试这个:

!define XMLConfigDir "C:\some_path_to_XML\subdir\"

Section "Main Section" 
        File "${XMLConfigDir}*.xml"
SectionEnd

在安装程序运行期间,也可以使用命令行开关设置符号。

我的问题的解决方案是使用CopyFiles内置函数,而不是SetOutPath后跟File

/D开关也可以在编译过程中使用,如:makensis.exe/DmySymbol=“C:\some\u path\u to\u XML\subdir\”script\u to\u compile.nscheers获取信息,但我不明白它如何回答我的问题,即无法将File命令与编译时未知但在运行时确定的变量一起使用。
!define XMLConfigDir "C:\some_path_to_XML\subdir\"

Section "Main Section" 
        File "${XMLConfigDir}*.xml"
SectionEnd