5

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

4

2 回答 2

10

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

Var /GLOBAL myVar ; This is variable -> use it as $myVar

!define mySymbol; This is symbol -> use it as ${mySymbol} 

试试这个:

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

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

也可以在安装程序运行时使用/D命令行开关设置符号。

于 2012-08-15T16:51:59.873 回答
2

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

于 2012-08-17T12:25:33.493 回答