我已经写了一个NSIS安装程序,在卸载时必须删除它安装的所有文件。
我已经在安装时将一个已安装文件的列表写入了一个清单文件,并且可以正常工作。
但是,在卸载时,清单的FileRead不返回任何内容;它仍然读取文件的每条记录,但应包含行内容的变量为空。有趣的是,代码可以在un.onInit函数中工作,但不能在卸载部分中工作。有人能告诉我为什么会这样吗?
下面是函数:
StrCpy $R6 "$myIni\manifest.pf"
FileOpen $6 "$R6" r
FileRead $6 "$line"
${Do}
Delete /REBOOTOK "$INSTDIR$line"
IfErrors fail continue
fail:
DetailPrint "Delete failed, file=$INSTDIR$line"
MessageBox MB_ICONSTOP "path=$line"
Abort
continue:
DetailPrint "Delete $INSTDIR$line"
FileRead $6 "$line"
${LoopUntil} $line == ""
FileClose $6提前谢谢你,
史蒂文
发布于 2013-12-06 18:28:24
FileRead的语法为:
FileRead handle user_var(output) [maxlen]您正在使用"$line"调用它:一个字符串,其中插入了变量$line的值,而不是一个变量。
在你的FilreRead调用中用$line替换"$line",应该没问题。
https://stackoverflow.com/questions/20420214
复制相似问题