调用必须与以“un”开头的函数名一起使用。在卸载部分

时间:2012-10-11 09:33:33

标签: function nsis uninstall

...
!include "nsDialogs.nsh"
!include "MUI2.nsh"
!include "LogicLib.nsh"
!include "XML.nsh"
  !insertmacro "UpdateXml"
...
!insertmacro MUI_UNPAGE_LICENSE "${NSISDIR}\Docs\Modern UI\License.txt"
UninstPage custom un.PageReinstall
!insertmacro MUI_UNPAGE_CONFIRM
...

Function un.PageReinstall
...
${UpdateXml} "http://127.0.0.1/123.xml" "/XML/A" $321 ; line 232 
...
FunctionEnd

NSIS日志:

  

!insertmacro:UpdateXmlCall Call必须与函数名一起使用   以“un。”开头在卸载部分。用法:致电   function_name | [:label_name]宏UpdateXmlCall上的错误   macroline 5第232行脚本“G:\ Basic.nsi”出错 - 中止   创作过程

怎么了?

1 个答案:

答案 0 :(得分:8)

卸载程序使用的函数必须以un.为前缀,宏也是如此。

因此,如果您正在使用宏并希望能够从安装程序和卸载程序中使用它,则必须将其插入2次(一个用于,而另一个没有un.前缀)。

在脚本开头添加或替换!insertmacro "UpdateXml" !insertmacro un.UpdateXml应解决问题(假设un.UpdateXml中已定义xml.nsh宏)。< / p>