我编写了一个NSIS安装程序,在卸载时必须删除它安装的所有文件。
我已经在安装时将已安装文件的列表写入清单文件,并且该文件正常工作。
然而,在卸载时,清单的FileRead什么都不返回;它仍然读取文件的每个记录,但应该包含行内容的变量为null。有趣的是代码在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
提前致谢,
史蒂芬
答案 0 :(得分:0)
FileRead
的语法是:
FileRead handle user_var(output) [maxlen]
您正在使用"$line"
调用它:内部使用变量$line
的值而不是变量进行插值的字符串。
在"$line"
来电中将$line
替换为FilreRead
,这应该没问题。